IPA: drop implicit_section again

As mentioned in the PR, since 4656461585 implicit_section
was not set to false when set_section was called with the argument
equal to NULL.

gcc/ChangeLog:

	PR ipa/98057
	* symtab.c (symtab_node::set_section_for_node): Drop
	implicit_section if x_section is NULL.

gcc/testsuite/ChangeLog:

	PR ipa/98057
	* g++.dg/ipa/pr98057.C: New test.
This commit is contained in:
Martin Liska 2020-11-30 13:07:27 +01:00
parent 69157fe758
commit cbc4ae2b26
2 changed files with 22 additions and 1 deletions

View File

@ -1683,7 +1683,10 @@ symtab_node::set_section_for_node (const symtab_node &other)
if (other.x_section)
x_section = retain_section_hash_entry (other.x_section);
else
x_section = NULL;
{
x_section = NULL;
implicit_section = false;
}
}
/* Workers for set_section. */

View File

@ -0,0 +1,18 @@
/* PR ipa/98057 */
/* { dg-do compile } */
/* { dg-options "-O3 -ffunction-sections" } */
class JITSymbolResolver {
virtual void anchor();
};
class MemoryManager {
virtual void anchor();
};
class MCJITMemoryManager : MemoryManager {
void anchor();
};
class RTDyldMemoryManager : MCJITMemoryManager, JITSymbolResolver {
void anchor();
};
void RTDyldMemoryManager::anchor() {}
void MCJITMemoryManager::anchor() {}