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