reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
// 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;
};