Fix setting of empty implicit-section-name attribute
authorPetr Pavlu <petr.pavlu@arm.com>
Wed, 11 Jul 2018 20:17:54 +0000 (20:17 +0000)
committerPetr Pavlu <petr.pavlu@arm.com>
Wed, 11 Jul 2018 20:17:54 +0000 (20:17 +0000)
commita934f9da411056d9c54a693f8e45ba9485aa1cd0
tree98cdb57e8d845b7f1038a37b8bd04094d610d671
parentb90dd4b25b602cf71e5cd9e349cb671796f2a4cf
Fix setting of empty implicit-section-name attribute

Code in `CodeGenModule::SetFunctionAttributes()` could set an empty
attribute `implicit-section-name` on a function that is affected by
`#pragma clang text="section"`. This is incorrect because the attribute
should contain a valid section name. If the function additionally also
used `__attribute__((section("section")))` then this could result in
emitting the function in a section with an empty name.

The patch fixes the issue by removing the problematic code that sets
empty `implicit-section-name` from
`CodeGenModule::SetFunctionAttributes()` because it is sufficient to set
this attribute only from a similar code in `setNonAliasAttributes()`
when the function is emitted.

Differential Revision: https://reviews.llvm.org/D48916

llvm-svn: 336842
clang/lib/CodeGen/CodeGenModule.cpp
clang/test/CodeGen/clang-sections-attribute.c [new file with mode: 0644]