1 // RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
2 
3 struct A {
AA4   A() { x = 10; }
5   int x;
6 };
7 
8 const A x;
9 
10 // CHECK: @_ZL1x = internal global
11 
12 struct X {
13   int (*fp)(int, int);
14 };
15 
add(int x,int y)16 int add(int x, int y) { return x + y; }
17 
18 // CHECK: @x2 = {{(dso_local )?}}constant
19 extern const X x2;
20 const X x2 = { &add };
21 
22 struct X1 {
23   mutable int i;
24 };
25 
26 struct X2 {
27   X1 array[3];
28 };
29 
30 // CHECK: @x2b = {{(dso_local )?}}global
31 extern const X2 x2b;
32 const X2 x2b = { { { 1 }, { 2 }, { 3 } } };
33