1 // RUN: %clang_cc1 -triple x86_64-unk-unk -o - -emit-llvm -debug-info-kind=limited %s | FileCheck %s
2 // RUN: %clang_cc1 -triple powerpc64-ibm-aix-xcoff -o - -emit-llvm -debug-info-kind=limited %s | FileCheck %s
3 
4 // PR3023
convert(void)5 void convert(void) {
6   struct { typeof(0) f0; } v0;
7 }
8 
9 
10 // PR2784
11 struct OPAQUE; // CHECK-DAG: DW_TAG_structure_type, name: "OPAQUE"
12 typedef struct OPAQUE *PTR;
13 PTR p;
14 
15 
16 // PR2950
17 struct s0;
18 struct s0 { struct s0 *p; } g0;
19 
f0(struct s0 * a0)20 struct s0 *f0(struct s0 *a0) {
21   return a0->p;
22 }
23 
24 
25 // PR3134
26 char xpto[];
27 
28 
29 // PR3427
30 struct foo {
31   int a;
32   void *ptrs[];
33 };
34 struct foo bar;
35 
36 
37 // PR4143
38 struct foo2 {
39   enum bar *bar;
40 };
41 
42 struct foo2 foo2;
43 
44 
45 // Radar 7325611
46 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "barfoo"
47 typedef int barfoo;
foo(void)48 barfoo foo(void) {
49 }
50 
51 // CHECK-DAG: __uint128_t
foo128(void)52 __uint128_t foo128 (void)
53 {
54   __uint128_t int128 = 44;
55   return int128;
56 }
57 
58 // CHECK-DAG: uint64x2_t
59 typedef unsigned long long uint64_t;
60 typedef uint64_t uint64x2_t __attribute__((ext_vector_type(2)));
61 uint64x2_t extvectbar[4];
62 
63 // CHECK-DAG: !DIBasicType(name: "long"
64 // CHECK-DAG: !DIBasicType(name: "unsigned long long"
integral_types(long x,unsigned long long y)65 void integral_types(long x, unsigned long long y) {
66 }
67