Reid Kleckner | f392ec6 | 2014-07-11 23:54:29 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fms-extensions -triple x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s |
Nico Weber | 636fc09 | 2012-10-13 22:30:41 +0000 | [diff] [blame] | 2 | |
Reid Kleckner | f392ec6 | 2014-07-11 23:54:29 +0000 | [diff] [blame] | 3 | struct A { |
Nico Weber | 636fc09 | 2012-10-13 22:30:41 +0000 | [diff] [blame] | 4 | ~A() {} |
| 5 | }; |
| 6 | |
Reid Kleckner | f392ec6 | 2014-07-11 23:54:29 +0000 | [diff] [blame] | 7 | extern "C" int f() { |
| 8 | // CHECK: define i32 @f() |
Nico Weber | 636fc09 | 2012-10-13 22:30:41 +0000 | [diff] [blame] | 9 | // CHECK-NOT: call void @_ZN1AD1Ev |
Reid Kleckner | ed5d4ad | 2014-07-11 20:22:55 +0000 | [diff] [blame] | 10 | // CHECK: ret i32 0 |
| 11 | return __noop(A()); |
Nico Weber | 636fc09 | 2012-10-13 22:30:41 +0000 | [diff] [blame] | 12 | }; |
Reid Kleckner | f392ec6 | 2014-07-11 23:54:29 +0000 | [diff] [blame] | 13 | |
| 14 | extern "C" int g() { |
| 15 | return __noop; |
| 16 | // CHECK: define i32 @g() |
| 17 | // CHECK: ret i32 0 |
| 18 | } |
| 19 | |
| 20 | extern "C" int h() { |
| 21 | return (__noop); |
| 22 | // CHECK: define i32 @h() |
| 23 | // CHECK: ret i32 0 |
| 24 | } |
| 25 | |
| 26 | extern "C" int i() { |
| 27 | return __noop + 1; |
| 28 | // CHECK: define i32 @i() |
| 29 | // CHECK: ret i32 1 |
| 30 | } |