// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
+// Catch the beginning and the end of the IR. This prevents the CHECK-NOT from
+// matching a spurious "constant" string in file paths printed in the output.
+//
+// CHECK-LABEL: target triple
// CHECK-NOT: constant
+// CHECK-LABEL: attributes
+
extern int X;
const int Y = X;
const int* foo() { return &Y; }
};
void use(bool cond, struct S s1, struct S s2, int val1, int val2) {
- // CHECK: define {{.*}}use{{.*}}(
+ // CHECK-LABEL: define {{.*}}use{{.*}}(
// CHECK: %[[S1:.+]] = alloca %struct.S
// CHECK: %[[S2:.+]] = alloca %struct.S
// CHECK: %[[COND:.+]] = alloca i8
void use2(bool cond1, bool cond2, struct S s1, int val1, int val2, int val3) {
- // CHECK: define {{.*}}use2{{.*}}(
+ // CHECK-LABEL: define {{.*}}use2{{.*}}(
// CHECK: %[[S1:.+]] = alloca %struct.S
// CHECK: %[[COND1:.+]] = alloca i8
// CHECK: %[[COND2:.+]] = alloca i8
// CHECK: store i16 %[[BF_SET]], ptr %[[S1]]
// CHECK: br label %[[END:.+]]
- // CHECK[[END]]:
+ // CHECK: [[END]]:
// CHECK-NOT: phi
// Nothing left to do here.
}
+
+// Catch the end of the IR. This prevents the CHECK-NOT above from matching a
+// spurious "phi" in file paths printed in the output.
+// CHECK-LABEL: attributes