38 lines
		
	
	
		
			734 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			734 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang -flimit-debug-info -emit-llvm -g -S %s -o - | FileCheck %s
 | |
| // RUN: %clang -flimit-debug-info -emit-llvm -g -S %s -o - | FileCheck --check-prefix=CHECK-C %s
 | |
| 
 | |
| // CHECK: !DICompositeType(tag: DW_TAG_class_type, name: "A"
 | |
| // CHECK-NOT:              DIFlagFwdDecl
 | |
| // CHECK-SAME:             ){{$}}
 | |
| class A {
 | |
| public:
 | |
|   int z;
 | |
| };
 | |
| 
 | |
| A *foo (A* x) {
 | |
|   A *a = new A(*x);
 | |
|   return a;
 | |
| }
 | |
| 
 | |
| // CHECK: !DICompositeType(tag: DW_TAG_class_type, name: "B"
 | |
| // CHECK-SAME:             flags: DIFlagFwdDecl
 | |
| 
 | |
| class B {
 | |
| public:
 | |
|   int y;
 | |
| };
 | |
| 
 | |
| extern int bar(B *b);
 | |
| int baz(B *b) {
 | |
|   return bar(b);
 | |
| }
 | |
| 
 | |
| 
 | |
| // CHECK-C: !DICompositeType(tag: DW_TAG_structure_type, name: "C"
 | |
| // CHECK-C-SAME:             flags: DIFlagFwdDecl
 | |
| 
 | |
| struct C {
 | |
| };
 | |
| 
 | |
| C (*x)(C);
 |