14967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar// RUN: %clang_cc1 -w -debug-info-kind=line-tables-only -std=c++11 -fexceptions -fcxx-exceptions -S -emit-llvm %s -o - -triple %itanium_abi_triple | FileCheck %s 287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 -w -debug-info-kind=line-tables-only -std=c++11 -fexceptions -fcxx-exceptions -S -emit-llvm %s -o - -triple i686-linux-gnu | FileCheck %s 30e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 40e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesint &src(); 50e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesint *sink(); 60e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesextern "C" __complex float complex_src(); 70e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesextern "C" __complex float *complex_sink(); 80e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 90e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 100e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f1() { 110e2c34f92f00628d48968dfea096d36381f494cbStephen Hines *sink() 120e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: store {{.*}}, !dbg [[DBG_F1:!.*]] 130e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 100 140e2c34f92f00628d48968dfea096d36381f494cbStephen Hines = // 150e2c34f92f00628d48968dfea096d36381f494cbStephen Hines src(); 160e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 170e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 180e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct foo { 190e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int i; 200e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int &j; 210e2c34f92f00628d48968dfea096d36381f494cbStephen Hines __complex float k; 220e2c34f92f00628d48968dfea096d36381f494cbStephen Hines foo(); 230e2c34f92f00628d48968dfea096d36381f494cbStephen Hines}; 240e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 250e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 260e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesfoo::foo() 270e2c34f92f00628d48968dfea096d36381f494cbStephen Hines : 280e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 200 290e2c34f92f00628d48968dfea096d36381f494cbStephen Hines i // CHECK: store i32 {{.*}} !dbg [[DBG_FOO_VALUE:!.*]] 300e2c34f92f00628d48968dfea096d36381f494cbStephen Hines (src()), 310e2c34f92f00628d48968dfea096d36381f494cbStephen Hines j // CHECK: store i32* {{.*}} !dbg [[DBG_FOO_REF:!.*]] 320e2c34f92f00628d48968dfea096d36381f494cbStephen Hines (src()), 330e2c34f92f00628d48968dfea096d36381f494cbStephen Hines k // CHECK: store float {{.*}} !dbg [[DBG_FOO_COMPLEX:!.*]] 340e2c34f92f00628d48968dfea096d36381f494cbStephen Hines (complex_src()) { 350e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 360e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 370e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define {{.*}}f2{{.*}} 380e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f2() { 390e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: store float {{.*}} !dbg [[DBG_F2:!.*]] 400e2c34f92f00628d48968dfea096d36381f494cbStephen Hines *complex_sink() 410e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 300 420e2c34f92f00628d48968dfea096d36381f494cbStephen Hines = // 430e2c34f92f00628d48968dfea096d36381f494cbStephen Hines complex_src(); 440e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 450e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 460e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 470e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f3() { 480e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: store float {{.*}} !dbg [[DBG_F3:!.*]] 490e2c34f92f00628d48968dfea096d36381f494cbStephen Hines *complex_sink() 500e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 400 510e2c34f92f00628d48968dfea096d36381f494cbStephen Hines += // 520e2c34f92f00628d48968dfea096d36381f494cbStephen Hines complex_src(); 530e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 540e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 550e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 560e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f4() { 570e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 500 580e2c34f92f00628d48968dfea096d36381f494cbStephen Hines auto x // CHECK: store {{.*}} !dbg [[DBG_F4:!.*]] 590e2c34f92f00628d48968dfea096d36381f494cbStephen Hines = src(); 600e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 610e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 620e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 630e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f5() { 640e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 600 650e2c34f92f00628d48968dfea096d36381f494cbStephen Hines auto x // CHECK: store float {{.*}} !dbg [[DBG_F5:!.*]] 660e2c34f92f00628d48968dfea096d36381f494cbStephen Hines = complex_src(); 670e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 680e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 690e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct agg { int i; }; 700e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesagg agg_src(); 710e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 720e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 730e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f6() { 740e2c34f92f00628d48968dfea096d36381f494cbStephen Hines agg x; 750e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: call void @llvm.memcpy{{.*}} !dbg [[DBG_F6:!.*]] 760e2c34f92f00628d48968dfea096d36381f494cbStephen Hines x 770e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 700 780e2c34f92f00628d48968dfea096d36381f494cbStephen Hines = // 790e2c34f92f00628d48968dfea096d36381f494cbStephen Hines agg_src(); 800e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 810e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 820e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 830e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f7() { 840e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int *src1(); 850e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int src2(); 860e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 800 870e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int x = ( // CHECK: load {{.*}} !dbg [[DBG_F7:!.*]] 880e2c34f92f00628d48968dfea096d36381f494cbStephen Hines src1())[src2()]; 890e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 900e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 910e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 920e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f8() { 930e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int src1[1]; 940e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int src2(); 950e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 900 960e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int x = ( // CHECK: load {{.*}} !dbg [[DBG_F8:!.*]] 970e2c34f92f00628d48968dfea096d36381f494cbStephen Hines src1)[src2()]; 980e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 990e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1000e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1010e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f9(int i) { 1020e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int src1[1][i]; 1030e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int src2(); 1040e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1000 1050e2c34f92f00628d48968dfea096d36381f494cbStephen Hines auto x = ( // CHECK: getelementptr {{.*}} !dbg [[DBG_F9:!.*]] 1060e2c34f92f00628d48968dfea096d36381f494cbStephen Hines src1)[src2()]; 1070e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 1080e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1090e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesinline void *operator new(decltype(sizeof(1)), void *p) noexcept { return p; } 1100e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1110e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1120e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f10() { 1130e2c34f92f00628d48968dfea096d36381f494cbStephen Hines void *void_src(); 1140e2c34f92f00628d48968dfea096d36381f494cbStephen Hines ( 1150e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: store {{.*}} !dbg [[DBG_F10_STORE:!.*]] 1160e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1100 1170e2c34f92f00628d48968dfea096d36381f494cbStephen Hines new (void_src()) int(src())); 1180e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 1190e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1200e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// noexcept just to simplify the codegen a bit 1210e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid fn() noexcept(true); 1220e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1230e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct bar { 1240e2c34f92f00628d48968dfea096d36381f494cbStephen Hines bar(); 1250e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // noexcept(false) to convolute the global dtor 1260e2c34f92f00628d48968dfea096d36381f494cbStephen Hines ~bar() noexcept(false); 1270e2c34f92f00628d48968dfea096d36381f494cbStephen Hines}; 1280e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// global ctor cleanup 1290e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1300e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: invoke{{ }} 1310e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: invoke{{ }} 1320e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: to label {{.*}}, !dbg [[DBG_GLBL_CTOR_B:!.*]] 1330e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1340e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// terminate caller 1350e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1360e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1370e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// global dtor cleanup 1380e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1390e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: invoke{{ }} 1400e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: invoke{{ }} 1410e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: to label {{.*}}, !dbg [[DBG_GLBL_DTOR_B:!.*]] 1420e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1200 1430e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesbar b[1] = { // 1440e2c34f92f00628d48968dfea096d36381f494cbStephen Hines (fn(), // 1450e2c34f92f00628d48968dfea096d36381f494cbStephen Hines bar())}; 1460e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1470e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1480e2c34f92f00628d48968dfea096d36381f494cbStephen Hines__complex double f11() { 1490e2c34f92f00628d48968dfea096d36381f494cbStephen Hines __complex double f; 1500e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: store {{.*}} !dbg [[DBG_F11:!.*]] 1510e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1300 1520e2c34f92f00628d48968dfea096d36381f494cbStephen Hines return f; 1530e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 1540e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1550e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1560e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f12() { 1570e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int f12_1(); 1580e2c34f92f00628d48968dfea096d36381f494cbStephen Hines void f12_2(int = f12_1()); 15987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: call {{.*}}{{(signext )?}}i32 {{.*}} !dbg [[DBG_F12:!.*]] 1600e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1400 1610e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f12_2(); 1620e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 1630e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1640e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1650e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f13() { 1660e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: call {{.*}} !dbg [[DBG_F13:!.*]] 1670e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#define F13_IMPL 1, src() 1680e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1, 1690e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1500 1700e2c34f92f00628d48968dfea096d36381f494cbStephen Hines F13_IMPL; 1710e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 1720e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1730e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct f14_impl { 1740e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f14_impl(int); 1750e2c34f92f00628d48968dfea096d36381f494cbStephen Hines}; 1760e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1770e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1780e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct f14_use { 1790e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: call {{.*}}f14_impl{{.*}}, !dbg [[DBG_F14_CTOR_CALL:![0-9]*]] 1800e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1600 1810e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f14_impl v{// 1820e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1}; 1830e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f14_use(); 1840e2c34f92f00628d48968dfea096d36381f494cbStephen Hines}; 1850e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1860e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesf14_use::f14_use() = default; 1870e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1880e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1890e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1900e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid func(foo); 1910e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f15(foo *f) { 1920e2c34f92f00628d48968dfea096d36381f494cbStephen Hines func( 1930e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: getelementptr {{.*}}, !dbg [[DBG_F15:![0-9]*]] 1940e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1700 1950e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f[3]); 1960e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 1970e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1980e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 1990e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f16(__complex float f) { 2000e2c34f92f00628d48968dfea096d36381f494cbStephen Hines __complex float g = // 2010e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: add {{.*}}, !dbg [[DBG_F16:![0-9]*]] 2020e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1800 2030e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f + 1; 2040e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2050e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 2060e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 2070e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f17(int *x) { 2080e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 1, 2090e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: getelementptr {{.*}}, !dbg [[DBG_F17:![0-9]*]] 2100e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 1900 2110e2c34f92f00628d48968dfea096d36381f494cbStephen Hines x[1]; 2120e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2130e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 2140e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 2150e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f18(int a, int b) { 2160e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: icmp {{.*}}, !dbg [[DBG_F18_1:![0-9]*]] 2170e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: br {{.*}}, !dbg [[DBG_F18_2:![0-9]*]] 2180e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 2000 2190e2c34f92f00628d48968dfea096d36381f494cbStephen Hines if (a // 2200e2c34f92f00628d48968dfea096d36381f494cbStephen Hines && // 2210e2c34f92f00628d48968dfea096d36381f494cbStephen Hines b) 2220e2c34f92f00628d48968dfea096d36381f494cbStephen Hines ; 2230e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2240e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 2250e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 2260e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f19(int a, int b) { 2270e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: icmp {{.*}}, !dbg [[DBG_F19_1:![0-9]*]] 2280e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: br {{.*}}, !dbg [[DBG_F19_2:![0-9]*]] 2290e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 2100 2300e2c34f92f00628d48968dfea096d36381f494cbStephen Hines if (a // 2310e2c34f92f00628d48968dfea096d36381f494cbStephen Hines || // 2320e2c34f92f00628d48968dfea096d36381f494cbStephen Hines b) 2330e2c34f92f00628d48968dfea096d36381f494cbStephen Hines ; 2340e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2350e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 2360e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 2370e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f20(int a, int b, int c) { 2380e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: icmp {{.*}}, !dbg [[DBG_F20_1:![0-9]*]] 2390e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// FIXME: Conditional operator's exprloc should be the '?' not the start of the 2400e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// expression, then this would go in the right place. (but adding getExprLoc to 2410e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// the ConditionalOperator breaks the ARC migration tool - need to investigate 2420e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// further). 2430e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: br {{.*}}, !dbg [[DBG_F20_1]] 2440e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 2200 2450e2c34f92f00628d48968dfea096d36381f494cbStephen Hines if (a // 2460e2c34f92f00628d48968dfea096d36381f494cbStephen Hines ? // 2470e2c34f92f00628d48968dfea096d36381f494cbStephen Hines b : c) 2480e2c34f92f00628d48968dfea096d36381f494cbStephen Hines ; 2490e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2500e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 2510e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 2520e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesint f21_a(int = 0); 2530e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f21_b(int = f21_a()); 2540e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f21() { 2550e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: call {{.*}}f21_b{{.*}}, !dbg [[DBG_F21:![0-9]*]] 2560e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 2300 2570e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f21_b(); 2580e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2590e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 2600e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 2610e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct f22_dtor { 2620e2c34f92f00628d48968dfea096d36381f494cbStephen Hines ~f22_dtor(); 2630e2c34f92f00628d48968dfea096d36381f494cbStephen Hines}; 2640e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f22() { 2650e2c34f92f00628d48968dfea096d36381f494cbStephen Hines { 2660e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f22_dtor f; 2670e2c34f92f00628d48968dfea096d36381f494cbStephen Hines src(); 2680e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: invoke {{.*}}src 2690e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: call {{.*}}, !dbg [[DBG_F22:![0-9]*]] 2700e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: call {{.*}}, !dbg [[DBG_F22]] 2710e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 2400 2720e2c34f92f00628d48968dfea096d36381f494cbStephen Hines } 2730e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2740e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 2750e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 2760e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct f23_struct { 2770e2c34f92f00628d48968dfea096d36381f494cbStephen Hines}; 2780e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesf23_struct f23_a(); 2790e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f23_b(f23_struct = f23_a()); 2800e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f23() { 2810e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: call {{.*}}f23_a{{.*}}, !dbg [[DBG_F23:![0-9]*]] 2820e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 2500 2830e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f23_b(); 2840e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2850e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 2860e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: define 2870e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f24_a(__complex float = complex_src()); 2880e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesvoid f24() { 2890e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: call {{.*}}complex_src{{.*}}, !dbg [[DBG_F24:![0-9]*]] 2900e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#line 2600 2910e2c34f92f00628d48968dfea096d36381f494cbStephen Hines f24_a(); 2920e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 2930e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 294b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F1]] = !DILocation(line: 100, 295b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_FOO_VALUE]] = !DILocation(line: 200, 296b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_FOO_REF]] = !DILocation(line: 202, 297b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_FOO_COMPLEX]] = !DILocation(line: 204, 298b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F2]] = !DILocation(line: 300, 299b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F3]] = !DILocation(line: 400, 300b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F4]] = !DILocation(line: 500, 301b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F5]] = !DILocation(line: 600, 302b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F6]] = !DILocation(line: 700, 303b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F7]] = !DILocation(line: 800, 304b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F8]] = !DILocation(line: 900, 305b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F9]] = !DILocation(line: 1000, 306b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F10_STORE]] = !DILocation(line: 1100, 307b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_GLBL_CTOR_B]] = !DILocation(line: 1200, 308b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_GLBL_DTOR_B]] = !DILocation(line: 1200, 309b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F11]] = !DILocation(line: 1300, 310b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F12]] = !DILocation(line: 1400, 311b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F13]] = !DILocation(line: 1500, 312b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F14_CTOR_CALL]] = !DILocation(line: 1600, 313b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F15]] = !DILocation(line: 1700, 314b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F16]] = !DILocation(line: 1800, 315b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F17]] = !DILocation(line: 1900, 316b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F18_1]] = !DILocation(line: 2000, 317b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F18_2]] = !DILocation(line: 2001, 318b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F19_1]] = !DILocation(line: 2100, 319b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F19_2]] = !DILocation(line: 2101, 320b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F20_1]] = !DILocation(line: 2200, 321b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F23]] = !DILocation(line: 2500, 322b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// CHECK: [[DBG_F24]] = !DILocation(line: 2600, 323