mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 17:46:06 +00:00

Summary: When searching for a declaration to be loaded the "lookup name" for every other Decl is computed. If the USR can not be determined here should be not an assert, instead skip this Decl. Reviewers: martong Reviewed By: martong Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65445 llvm-svn: 368020
51 lines
843 B
C++
51 lines
843 B
C++
// RUN: %clang_extdef_map %s -- | FileCheck --implicit-check-not "c:@y" --implicit-check-not "c:@z" %s
|
|
|
|
int f(int) {
|
|
return 0;
|
|
}
|
|
// CHECK-DAG: c:@F@f#I#
|
|
|
|
extern const int x = 5;
|
|
// CHECK-DAG: c:@x
|
|
|
|
// Non-const variables should not be collected.
|
|
int y = 5;
|
|
|
|
// In C++, const implies internal linkage, so not collected.
|
|
const int z = 5;
|
|
|
|
struct S {
|
|
int a;
|
|
};
|
|
extern S const s = {.a = 2};
|
|
// CHECK-DAG: c:@s
|
|
|
|
struct SF {
|
|
const int a;
|
|
};
|
|
SF sf = {.a = 2};
|
|
// CHECK-DAG: c:@sf
|
|
|
|
struct SStatic {
|
|
static const int a = 4;
|
|
};
|
|
const int SStatic::a;
|
|
// CHECK-DAG: c:@S@SStatic@a
|
|
|
|
extern int const arr[5] = { 0, 1 };
|
|
// CHECK-DAG: c:@arr
|
|
|
|
union U {
|
|
const int a;
|
|
const unsigned int b;
|
|
};
|
|
U u = {.a = 6};
|
|
// CHECK-DAG: c:@u
|
|
|
|
// No USR can be generated for this.
|
|
// Check for no crash in this case.
|
|
static union {
|
|
float uf;
|
|
const int ui;
|
|
};
|