// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown %s -Wno-strict-prototypes -emit-llvm -o - | FileCheck %s
// PR1895
// sizeof function
int ;
int x=sizeof;
int y=;
void *
_Bool test2b;
int
// PR1921
int
// PR2080 - sizeof void
int t1 = sizeof;
int t2 = ;
void
// 'const float' promotes to double in varargs.
int
// this one shouldn't fold
int
// this one shouldn't fold as well
void
// rdar://6520707
void
// noop casts as lvalues.
;
;
int
// PR3809: INC/DEC of function pointers.
void ;
unsigned
;
int
;
_Complex float
f5_a;
;
struct f5_a
// ?: in "lvalue"
;
int
// PR4026
void
// PR4067
int
// rdar://6880558
;
;
;
void
void
// rdar://7530813
// CHECK-LABEL: define{{.*}} i32 @f11
int
int
// Make sure negate of fp uses -0.0 for proper -0 handling.
double
// Check operations on incomplete types.
void
// CHECK-LABEL: define{{.*}} void @f15
void
// PR8967: this was crashing
// CHECK-LABEL: define{{.*}} void @f16()
void
// PR13704: negative increment in i128 is not preserved.
// CHECK-LABEL: define{{.*}} void @f17()
void
// PR23597: We should evaluate union cast operands even if the cast is unused.
typedef union u strct;
int ;
void
// CHECK-LABEL: define{{.*}} void @f18()
// CHECK: call i32 @returns_int()
// Ensure the right stmt is returned
int
// CHECK-LABEL: define{{.*}} i32 @f19()
// CHECK: [[T:%.*]] = alloca i32
// CHECK: store i32 4, i32* [[T]]
// CHECK: [[L:%.*]] = load i32, i32* [[T]]
// CHECK: ret i32 [[L]]