aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2020-03-19 17:12:56 +0100
committerJan Hubicka <jh@suse.cz>2020-03-19 17:12:56 +0100
commitf22712bd8a2ed57d3cc7e6fa92730bd5852e27b3 (patch)
treeb1cc53660ac9b44ff141b8908117343bba6e1b3f /gcc/ipa-inline.c
parentc8429c2aba80f845939ffa6b2cfe8a0be1b50078 (diff)
downloadgcc-f22712bd8a2ed57d3cc7e6fa92730bd5852e27b3.zip
gcc-f22712bd8a2ed57d3cc7e6fa92730bd5852e27b3.tar.gz
gcc-f22712bd8a2ed57d3cc7e6fa92730bd5852e27b3.tar.bz2
Fix inliner ICE on alias with flatten attribute [PR92372]
gcc/ChangeLog: 2020-03-19 Jan Hubicka <hubicka@ucw.cz> PR ipa/92372 * cgraphunit.c (process_function_and_variable_attributes): warn for flatten attribute on alias. * ipa-inline.c (ipa_inline): Do not ICE on flatten attribute on alias. gcc/testsuite/ChangeLog: 2020-03-19 Jan Hubicka <hubicka@ucw.cz> PR ipa/92372 * gcc.c-torture/pr92372.c: New test. * gcc.dg/attr-flatten-1.c: New test.
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 6b6ba9a..302ce16 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -2634,6 +2634,9 @@ ipa_inline (void)
{
node = order[i];
if (node->definition
+ /* Do not try to flatten aliases. These may happen for example when
+ creating local aliases. */
+ && !node->alias
&& lookup_attribute ("flatten",
DECL_ATTRIBUTES (node->decl)) != NULL)
order[j--] = order[i];