1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -fms-extensions -triple x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s 2f4a2713aSLionel Sambuc 3*0a6a1f1dSLionel Sambuc struct A { ~AA4f4a2713aSLionel Sambuc ~A() {} 5f4a2713aSLionel Sambuc }; 6f4a2713aSLionel Sambuc f()7*0a6a1f1dSLionel Sambucextern "C" int f() { 8*0a6a1f1dSLionel Sambuc // CHECK: define i32 @f() 9f4a2713aSLionel Sambuc // CHECK-NOT: call void @_ZN1AD1Ev 10*0a6a1f1dSLionel Sambuc // CHECK: ret i32 0 11*0a6a1f1dSLionel Sambuc return __noop(A()); 12f4a2713aSLionel Sambuc }; 13f4a2713aSLionel Sambuc g()14*0a6a1f1dSLionel Sambucextern "C" int g() { 15*0a6a1f1dSLionel Sambuc return __noop; 16*0a6a1f1dSLionel Sambuc // CHECK: define i32 @g() 17*0a6a1f1dSLionel Sambuc // CHECK: ret i32 0 18*0a6a1f1dSLionel Sambuc } 19*0a6a1f1dSLionel Sambuc h()20*0a6a1f1dSLionel Sambucextern "C" int h() { 21*0a6a1f1dSLionel Sambuc return (__noop); 22*0a6a1f1dSLionel Sambuc // CHECK: define i32 @h() 23*0a6a1f1dSLionel Sambuc // CHECK: ret i32 0 24*0a6a1f1dSLionel Sambuc } 25*0a6a1f1dSLionel Sambuc i()26*0a6a1f1dSLionel Sambucextern "C" int i() { 27*0a6a1f1dSLionel Sambuc return __noop + 1; 28*0a6a1f1dSLionel Sambuc // CHECK: define i32 @i() 29*0a6a1f1dSLionel Sambuc // CHECK: ret i32 1 30*0a6a1f1dSLionel Sambuc } 31