aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/c-c++-common/Wimplicit-fallthrough-34.c12
-rw-r--r--gcc/tree.h2
-rw-r--r--gcc/varasm.c4
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:;
+}
diff --git a/gcc/tree.h b/gcc/tree.h
index 30c6439..434a7a1 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -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. */