-// RUN: clang-cc -emit-llvm -o - %s | grep -e "@g[0-9] " | count 2
+// RUN: clang-cc -emit-llvm -o - %s | FileCheck %s
int g0, f0();
int f1(), g1;
+// CHECK: @g0 = common global i32 0, align 4
+// CHECK: @g1 = common global i32 0, align 4
+
-// RUN: clang-cc -emit-llvm -o - %s | grep -e "^@f" | count 1
+// RUN: clang-cc -emit-llvm -o - %s | FileCheck %s
int x() { return 1; }
+// CHECK: %retval = alloca i32
+// CHECK: store i32 1, i32* %retval
+// CHECK: %0 = load i32* %retval
+// CHECK: ret i32 %0
+
+
int f() __attribute__((weak, alias("x")));
/* Test that we link to the alias correctly instead of making a new
int h() {
return f();
}
+
+// CHECK: %retval = alloca i32
+// CHECK: %call = call i32 (...)* @f()
+// CHECK: store i32 %call, i32* %retval
+// CHECK: %0 = load i32* %retval
+// CHECK: ret i32 %0
+
-// RUN: clang-cc -emit-llvm < %s -o - | grep -F "llvm.eh.unwind.init"
+// RUN: clang-cc -emit-llvm < %s -o - | FileCheck %s
-int a() { __builtin_unwind_init(); }
+void a() { __builtin_unwind_init(); }
+// CHECK: call void @llvm.eh.unwind.init()