]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Backport r246098
authorMartin Liska <mliska@suse.cz>
Wed, 22 Mar 2017 12:31:04 +0000 (13:31 +0100)
committerMartin Liska <marxin@gcc.gnu.org>
Wed, 22 Mar 2017 12:31:04 +0000 (12:31 +0000)
2017-03-22  Martin Liska  <mliska@suse.cz>

Backport from mainline
2017-03-13  Martin Liska  <mliska@suse.cz>

PR middle-end/78339
* ipa-pure-const.c (warn_function_noreturn): If the declarations
is a CHKP clone, use original declaration.
2017-03-22  Martin Liska  <mliska@suse.cz>

Backport from mainline
2017-03-13  Martin Liska  <mliska@suse.cz>

PR middle-end/78339
* gcc.target/i386/mpx/pr78339.c: New test.

From-SVN: r246374

gcc/ChangeLog
gcc/ipa-pure-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/mpx/pr78339.c [new file with mode: 0644]

index afa1abf4c41f3bfb067827df5cb708f81ddf8839..d01e9342aab9c2b7f513441f4f2b7e2ba1a3c698 100644 (file)
@@ -1,3 +1,12 @@
+2017-03-22  Martin Liska  <mliska@suse.cz>
+
+       Backport from mainline
+       2017-03-13  Martin Liska  <mliska@suse.cz>
+
+       PR middle-end/78339
+       * ipa-pure-const.c (warn_function_noreturn): If the declarations
+       is a CHKP clone, use original declaration.
+
 2017-03-22  Martin Liska  <mliska@suse.cz>
 
        Backport from mainline
index 8bfc649e1488e472c90472f4e9c8dee7a8a9b793..f86d6fbbc40719bb1f3ad1335a8cd3ed76e1e972 100644 (file)
@@ -249,11 +249,17 @@ warn_function_const (tree decl, bool known_finite)
 static void
 warn_function_noreturn (tree decl)
 {
+  tree original_decl = decl;
+
+  cgraph_node *node = cgraph_node::get (decl);
+  if (node->instrumentation_clone)
+    decl = node->instrumented_version->decl;
+
   static hash_set<tree> *warned_about;
   if (!lang_hooks.missing_noreturn_ok_p (decl)
       && targetm.warn_func_return (decl))
     warned_about 
-      = suggest_attribute (OPT_Wsuggest_attribute_noreturn, decl,
+      = suggest_attribute (OPT_Wsuggest_attribute_noreturn, original_decl,
                           true, warned_about, "noreturn");
 }
 
index c32a149b563cc0e24884f74ad32e36d6409f7f9c..3dd132f35a85a1e21120acd199821ef36bc3aa47 100644 (file)
@@ -1,3 +1,11 @@
+2017-03-22  Martin Liska  <mliska@suse.cz>
+
+       Backport from mainline
+       2017-03-13  Martin Liska  <mliska@suse.cz>
+
+       PR middle-end/78339
+       * gcc.target/i386/mpx/pr78339.c: New test.
+
 2017-03-22  Martin Liska  <mliska@suse.cz>
 
        Backport from mainline
diff --git a/gcc/testsuite/gcc.target/i386/mpx/pr78339.c b/gcc/testsuite/gcc.target/i386/mpx/pr78339.c
new file mode 100644 (file)
index 0000000..3dd0424
--- /dev/null
@@ -0,0 +1,5 @@
+/* { dg-do compile } */
+/* { dg-options "-fcheck-pointer-bounds -mmpx -Wsuggest-attribute=noreturn" } */
+
+extern _Noreturn void exit (int);
+int main (void) { exit (1); }