cgraph: flatten and same_body aliases [PR96078]
authorJason Merrill <jason@redhat.com>
Fri, 12 Feb 2021 03:01:19 +0000 (22:01 -0500)
committerJason Merrill <jason@redhat.com>
Wed, 3 Mar 2021 04:20:43 +0000 (23:20 -0500)
commitf8e7f3f3f33e22721a28772cc3f9b616e48cd1c9
tree93dc6074a803b49d2badf428cce3d7e4a8e5378f
parent9b2084db9f9917eb9b19b1eb5ec03cdcb05f349e
cgraph: flatten and same_body aliases [PR96078]

The patch for PR92372 made us start warning about a flatten attribute on an
alias.  But in the case of C++ 'tor base/complete variants, the user didn't
create the alias.  If the alias target also has the attribute, the alias
points to a flattened function, so we shouldn't warn.

gcc/ChangeLog:

PR c++/96078
* cgraphunit.c (process_function_and_variable_attributes): Don't
warn about flatten on an alias if the target also has it.
* cgraph.h (symtab_node::get_alias_target_tree): New.

gcc/testsuite/ChangeLog:

PR c++/96078
* g++.dg/ext/attr-flatten1.C: New test.
gcc/cgraph.h
gcc/cgraphunit.c
gcc/testsuite/g++.dg/ext/attr-flatten1.C [new file with mode: 0644]