diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-06-12 09:14:08 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-06-12 09:14:08 +0200 |
commit | f3139680c36885f772828607e2e4a6a3df7ec4aa (patch) | |
tree | af72c9664f32d76c127615239f7908c094f8f2e4 | |
parent | bfde1e21735900800e42546d0307143d6ca5fe44 (diff) | |
download | gcc-f3139680c36885f772828607e2e4a6a3df7ec4aa.zip gcc-f3139680c36885f772828607e2e4a6a3df7ec4aa.tar.gz gcc-f3139680c36885f772828607e2e4a6a3df7ec4aa.tar.bz2 |
re PR c/90760 (ICE on attributes section and alias in set_section, at symtab.c:1573)
PR c/90760
* symtab.c (symtab_node::set_section): Allow being called on aliases
as long as they aren't analyzed yet.
* gcc.dg/pr90760.c: New test.
From-SVN: r272178
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/symtab.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr90760.c | 8 |
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ba25766..ea28e6c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-06-12 Jakub Jelinek <jakub@redhat.com> + + PR c/90760 + * symtab.c (symtab_node::set_section): Allow being called on aliases + as long as they aren't analyzed yet. + 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com> * config/mips/mips.c (mips_final_postscan_insn): Modify call diff --git a/gcc/symtab.c b/gcc/symtab.c index 905ca05..b1589ea 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -1583,7 +1583,7 @@ symtab_node::set_section (symtab_node *n, void *s) void symtab_node::set_section (const char *section) { - gcc_assert (!this->alias); + gcc_assert (!this->alias || !this->analyzed); call_for_symbol_and_aliases (symtab_node::set_section, const_cast<char *>(section), true); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 302ac15..2753571 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-06-12 Jakub Jelinek <jakub@redhat.com> + + PR c/90760 + * gcc.dg/pr90760.c: New test. + 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com> * gcc.target/mips/data-sym-pool.c: Update expected output. diff --git a/gcc/testsuite/gcc.dg/pr90760.c b/gcc/testsuite/gcc.dg/pr90760.c new file mode 100644 index 0000000..525a21a --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr90760.c @@ -0,0 +1,8 @@ +/* PR c/90760 */ +/* { dg-do compile } */ +/* { dg-require-named-sections "" } */ + +void bar (void) {} +void foo (void) __attribute__ ((alias ("bar"))); /* { dg-error "section of alias 'foo' must match section of its target" } */ +void foo (void) __attribute__ ((section ("baz"))); +void qux (void) __attribute__ ((alias ("bar"), section ("baz"))); /* { dg-error "section of alias 'qux' must match section of its target" } */ |