xref: /llvm-project/clang/test/CodeGen/debug-info.c (revision 12f78e740c5419f7d1fbcf8f2106e7a40cd1d6f7)
1 // RUN: %clang_cc1 -Wno-error=return-type -triple x86_64-unk-unk -o - -emit-llvm -debug-info-kind=limited %s | FileCheck %s
2 // RUN: %clang_cc1 -Wno-error=return-type -triple powerpc64-ibm-aix-xcoff -o - -emit-llvm -debug-info-kind=limited %s | FileCheck %s
3 
4 // PR3023
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 
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 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "barfoo"
45 typedef int barfoo;
46 barfoo foo(void) {
47 }
48 
49 // CHECK-DAG: __uint128_t
50 __uint128_t foo128 (void)
51 {
52   __uint128_t int128 = 44;
53   return int128;
54 }
55 
56 // CHECK-DAG: uint64x2_t
57 typedef unsigned long long uint64_t;
58 typedef uint64_t uint64x2_t __attribute__((ext_vector_type(2)));
59 uint64x2_t extvectbar[4];
60 
61 // CHECK-DAG: !DIBasicType(name: "long"
62 // CHECK-DAG: !DIBasicType(name: "unsigned long long"
63 void integral_types(long x, unsigned long long y) {
64 }
65