llvm-project/clang/test/Analysis/func-mapping-test.cpp
Balazs Keri 4e79097dc7 [CrossTU] Handle case when no USR could be generated during Decl search.
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
2019-08-06 12:10:16 +00:00

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;
};