aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2016-03-16 09:50:18 -0700
committerRichard Henderson <rth@gcc.gnu.org>2016-03-16 09:50:18 -0700
commitaa43616c59fceefa8ad06bfd60e88f17ad31f063 (patch)
treef650bc6e08ced3e2299e88208f3fcabd0e84f968 /gcc/function.h
parent59608fe587074a6f704d39fd08b6a05f6fb11bf2 (diff)
downloadgcc-aa43616c59fceefa8ad06bfd60e88f17ad31f063.zip
gcc-aa43616c59fceefa8ad06bfd60e88f17ad31f063.tar.gz
gcc-aa43616c59fceefa8ad06bfd60e88f17ad31f063.tar.bz2
re PR middle-end/70199 (Crash at -O2 when using labels.)
PR middle-end/70199 * function.h (struct function): Add has_forced_label_in_static. * gimplify.c (force_labels_r): Set it. * lto-streamer-in.c (input_struct_function_base): Read it. * lto-streamer-out.c (output_struct_function_base): Write it. * tree-inline.c (has_label_address_in_static_1): Remove. (copy_forbidden): Remove fndecl parameter; test has_forced_label_in_static. (inline_forbidden_p): Update call to copy_forbidden. (tree_versionable_function_p): Likewise. * ipa-chkp.c (chkp_instrumentable_p): Likewise. (chkp_versioning): Likewise. * tree-inline.h (copy_forbidden): Update decl. testsuite/ * gcc.c-torture/compile/pr70199.c: New. From-SVN: r234261
Diffstat (limited to 'gcc/function.h')
-rw-r--r--gcc/function.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/function.h b/gcc/function.h
index c4368cd..501ef68 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -328,6 +328,10 @@ struct GTY(()) function {
from nested functions. */
unsigned int has_nonlocal_label : 1;
+ /* Nonzero if function being compiled has a forced label
+ placed into static storage. */
+ unsigned int has_forced_label_in_static : 1;
+
/* Nonzero if we've set cannot_be_copied_reason. I.e. if
(cannot_be_copied_set && !cannot_be_copied_reason), the function
can in fact be copied. */