mirror of git://gcc.gnu.org/git/gcc.git
re PR middle-end/71494 (label as value in nested function)
PR middle-end/71494 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO without LABEL_DECL, set *handled_ops_p to false instead of true. * gcc.c-torture/execute/pr71494.c: New test. From-SVN: r237317
This commit is contained in:
parent
50b15873a2
commit
ec1c20db05
|
|
@ -1,3 +1,9 @@
|
||||||
|
2016-06-10 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR middle-end/71494
|
||||||
|
* tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
|
||||||
|
without LABEL_DECL, set *handled_ops_p to false instead of true.
|
||||||
|
|
||||||
2016-06-10 Martin Sebor <msebor@redhat.com>
|
2016-06-10 Martin Sebor <msebor@redhat.com>
|
||||||
|
|
||||||
PR c/71392
|
PR c/71392
|
||||||
|
|
@ -12,7 +18,7 @@
|
||||||
(BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
|
(BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
|
||||||
(BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
|
(BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
|
||||||
(BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
|
(BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
|
||||||
(BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW):
|
(BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
|
||||||
|
|
||||||
2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||||
|
|
||||||
|
|
@ -124,7 +130,7 @@
|
||||||
sysroot/usr/lib/32api for additional win32 libraries,
|
sysroot/usr/lib/32api for additional win32 libraries,
|
||||||
fixes failing Cygwin bootstrapping.
|
fixes failing Cygwin bootstrapping.
|
||||||
|
|
||||||
2016-06-09 Marcin Baczyński <marbacz@gmail.com>
|
2016-06-09 Marcin Baczyński <marbacz@gmail.com>
|
||||||
|
|
||||||
* diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
|
* diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
|
||||||
delete.
|
delete.
|
||||||
|
|
@ -834,7 +840,7 @@
|
||||||
only edges out of BB are EH edges.
|
only edges out of BB are EH edges.
|
||||||
|
|
||||||
2016-06-04 Martin Sebor <msebor@redhat.com>
|
2016-06-04 Martin Sebor <msebor@redhat.com>
|
||||||
Marcin Baczyński <marbacz@gmail.com>
|
Marcin Baczyński <marbacz@gmail.com>
|
||||||
|
|
||||||
PR c/48116
|
PR c/48116
|
||||||
* doc/invoke.texi (-Wreturn-type): Mention not warning on return with
|
* doc/invoke.texi (-Wreturn-type): Mention not warning on return with
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
2016-06-10 Jakub Jelinek <jakub@redhat.com>
|
2016-06-10 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR middle-end/71494
|
||||||
|
* gcc.c-torture/execute/pr71494.c: New test.
|
||||||
|
|
||||||
PR c/68657
|
PR c/68657
|
||||||
* gcc.target/i386/pr68657.c: New test.
|
* gcc.target/i386/pr68657.c: New test.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
/* PR middle-end/71494 */
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
void *label = &&out;
|
||||||
|
int i = 0;
|
||||||
|
void test (void)
|
||||||
|
{
|
||||||
|
label = &&out2;
|
||||||
|
goto *label;
|
||||||
|
out2:;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
goto *label;
|
||||||
|
out:
|
||||||
|
i += 2;
|
||||||
|
test ();
|
||||||
|
if (i != 3)
|
||||||
|
__builtin_abort ();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -1347,7 +1347,7 @@ convert_nonlocal_reference_stmt (gimple_stmt_iterator *gsi, bool *handled_ops_p,
|
||||||
{
|
{
|
||||||
wi->val_only = true;
|
wi->val_only = true;
|
||||||
wi->is_lhs = false;
|
wi->is_lhs = false;
|
||||||
*handled_ops_p = true;
|
*handled_ops_p = false;
|
||||||
return NULL_TREE;
|
return NULL_TREE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue