mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-27 05:06:06 +00:00

Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions. I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default. Test updates are made as a separate patch: D108453 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D105169
20 lines
609 B
C++
20 lines
609 B
C++
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s
|
|
|
|
// Check that PR17480 is fixed: __attribute__((used)) ignored in templated
|
|
// classes
|
|
namespace InstantiateUsedMemberDefinition {
|
|
template <typename T>
|
|
struct S {
|
|
int __attribute__((used)) f() {
|
|
return 0;
|
|
}
|
|
};
|
|
|
|
void test() {
|
|
// Check that InstantiateUsedMemberDefinition::S<int>::f() is defined
|
|
// as a result of the S class template implicit instantiation
|
|
// CHECK: define linkonce_odr noundef i32 @_ZN31InstantiateUsedMemberDefinition1SIiE1fEv
|
|
S<int> inst;
|
|
}
|
|
} // namespace InstantiateUsedMemberDefinition
|