llvm-project/clang/test/CodeGenCXX/conditional-temporaries.cpp

29 lines
508 B
C++

// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-apple-darwin9 | FileCheck %s
struct I {
int i;
I();
~I();
};
void g(int);
volatile int i;
void f1() {
// CHECK: call void @_ZN1IC1Ev
g(i ? I().i : 0);
// CHECK: call void @_Z1gi
// CHECK: call void @_ZN1ID1Ev
// CHECK: call void @_ZN1IC1Ev
g(i || I().i);
// CHECK: call void @_Z1gi
// CHECK: call void @_ZN1ID1Ev
// CHECK: call void @_ZN1IC1Ev
g(i && I().i);
// CHECK: call void @_Z1gi
// CHECK: call void @_ZN1ID1Ev
}