diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/Wimplicit-fallthrough-34.c | 12 | ||||
-rw-r--r-- | gcc/tree.h | 2 | ||||
-rw-r--r-- | gcc/varasm.c | 4 |
5 files changed, 27 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 449a759..b2b3ab5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-10-13 Jakub Jelinek <jakub@redhat.com> + + PR c/77946 + * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of + public_flag. + * varasm.c (default_binds_local_p_3): Formatting fix. + 2016-10-13 Bin Cheng <bin.cheng@arm.com> * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c059a1d..5dc04c5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-10-13 Jakub Jelinek <jakub@redhat.com> + + PR c/77946 + * c-c++-common/Wimplicit-fallthrough-34.c: New test. + 2016-10-13 Martin Liska <mliska@suse.cz> PR tree-optimization/77943 diff --git a/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-34.c b/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-34.c new file mode 100644 index 0000000..9168c52 --- /dev/null +++ b/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-34.c @@ -0,0 +1,12 @@ +/* PR c/77946 */ +/* { dg-do compile } */ +/* { dg-options "-Wimplicit-fallthrough" } */ + +void +foo (void) +{ + static void *p = &&lab; + goto *p; + /*FALLTHRU*/ + lab:; +} @@ -777,7 +777,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, /* Whether a case or a user-defined label is allowed to fall through to. This is used to implement -Wimplicit-fallthrough. */ #define FALLTHROUGH_LABEL_P(NODE) \ - (LABEL_DECL_CHECK (NODE)->base.public_flag) + (LABEL_DECL_CHECK (NODE)->base.private_flag) /* Nonzero means this expression is volatile in the C sense: its address should be of type `volatile WHATEVER *'. diff --git a/gcc/varasm.c b/gcc/varasm.c index a036872..99dd4cb 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -6856,8 +6856,8 @@ default_binds_local_p_3 (const_tree exp, bool shlib, bool weak_dominate, FIXME: We can resolve the weakref case more curefuly by looking at the weakref alias. */ if (lookup_attribute ("weakref", DECL_ATTRIBUTES (exp)) - || (TREE_CODE (exp) == FUNCTION_DECL - && lookup_attribute ("ifunc", DECL_ATTRIBUTES (exp)))) + || (TREE_CODE (exp) == FUNCTION_DECL + && lookup_attribute ("ifunc", DECL_ATTRIBUTES (exp)))) return false; /* Static variables are always local. */ |