aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2017-03-13 16:30:17 +0100
committerMartin Liska <marxin@gcc.gnu.org>2017-03-13 15:30:17 +0000
commita48018b5dc804de7b8c07197bff56e57269d67a2 (patch)
tree44de64c4674e5e4ad283a8fc5f6aefa0189dcde9
parent0e5172ebf287a857364a0e8be216e3231258bc49 (diff)
downloadgcc-a48018b5dc804de7b8c07197bff56e57269d67a2.zip
gcc-a48018b5dc804de7b8c07197bff56e57269d67a2.tar.gz
gcc-a48018b5dc804de7b8c07197bff56e57269d67a2.tar.bz2
Do not warn -Wsuggest-attribute=noreturn for main.chkp (PR middle-end/78339).
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-pure-const.c8
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/mpx/pr78339.c5
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b00a0cd..a4cd56f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 3781171..e457166 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -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");
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 873f648..a3af805 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..3dd0424
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/mpx/pr78339.c
@@ -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); }