Do not warn -Wsuggest-attribute=noreturn for main.chkp (PR middle-end/78339).
authorMartin Liska <mliska@suse.cz>
Mon, 13 Mar 2017 15:30:17 +0000 (16:30 +0100)
committerMartin Liska <marxin@gcc.gnu.org>
Mon, 13 Mar 2017 15:30:17 +0000 (15:30 +0000)
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-13  Martin Liska  <mliska@suse.cz>

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

From-SVN: r246098

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

index b00a0cd..a4cd56f 100644 (file)
@@ -1,3 +1,9 @@
+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-13  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
index 3781171..e457166 100644 (file)
@@ -218,11 +218,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 873f648..a3af805 100644 (file)
@@ -1,3 +1,8 @@
+2017-03-13  Martin Liska  <mliska@suse.cz>
+
+       PR middle-end/78339
+       * gcc.target/i386/mpx/pr78339.c: New test.
+
 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * testsuite/gcc.target/arc/bitfield.c: New file.
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); }