Make test resistant to false matches of numbered (unnamed) labels inside other numbers.

In release builds labels are numbers. Matching just the number may result
in false matches where the label is contained in other numbers, such as
14 inside [114 x i8]. A stricter match requiring start of line or > character
before the label avoids these false matches.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246385 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Yaron Keren 2015-08-30 15:24:46 +00:00
parent 0e98a65c8f
commit dbd46ba38c
1 changed files with 9 additions and 4 deletions

View File

@ -7,19 +7,24 @@ int f(int x, int y) {
// CHECK: %[[B4:.*]] = or i1 %[[B2]], %[[B3]]
// CHECK: br i1 %[[B1]], label %[[L1:[0-9a-z_.]*]], label %[[L2:[0-9a-z_.]*]]
// CHECK: [[L2]]
// {{^|>}} used to match both Debug form of the captured label
// cont:
// and Release form
// ; <label>14
// But avoids false matches inside other numbers such as [114 x i8].
// CHECK: {{^|>}}[[L2]]
// CHECK-NEXT: call void @llvm.trap()
// CHECK-NEXT: unreachable
// CHECK: [[L1]]
// CHECK: {{^|>}}[[L1]]
// CHECK-NEXT: br i1 %[[B4]], label %[[L3:[0-9a-z_.]*]], label %[[L4:[0-9a-z_.]*]]
// CHECK: [[L4]]
// CHECK: {{^|>}}[[L4]]
// CHECK-NEXT: zext
// CHECK-NEXT: zext
// CHECK-NEXT: __ubsan_handle_divrem_overflow
// CHECK: [[L3]]
// CHECK: {{^|>}}[[L3]]
// CHECK-NEXT: sdiv i32 %[[N]], %[[D]]
return x / y;
}