Seems I had a problem with my version of grep, when run by lit, not supporting the \s escape. This seems to fix it for me & I'll be getting the buildbots to run these tests too to keep an eye on them (actually loop-convert tests still fail when run via a make build, so that'll be addressed in a future commit). I could use [[:space:]] to generalize over other whitespace but that seemed unnecessarily verbose when the flexibility wasn't actually required by the current text of the tests. Also I just simplified a lot of the loop-convert tests (removing the unecessary temp file deletion at the start, removing the unnecessary && for FileCheck, etc). The remove-cstr-calls/basic.cpp changes were necessitated by an out of tree lit-like test runner that's a bit less fantastic about escaping. They were modeled on existing tooling test cases in Clang, with thanks to Manuel Klimek for the pointers. llvm-svn: 163009
27 lines
589 B
C++
27 lines
589 B
C++
// RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp
|
|
// RUN: loop-convert . %t.cpp -- && FileCheck -input-file=%t.cpp %s
|
|
|
|
void f() {
|
|
const int N = 6;
|
|
const int M = 8;
|
|
int arr[N][M];
|
|
|
|
for (int i = 0; i < N; ++i) {
|
|
int a = 0;
|
|
int b = arr[i][a];
|
|
}
|
|
// CHECK: for (auto & [[VAR:[a-z_]+]] : arr) {
|
|
// CHECK-NEXT: int a = 0;
|
|
// CHECK-NEXT: int b = [[VAR]][a];
|
|
// CHECK-NEXT: }
|
|
|
|
for (int j = 0; j < M; ++j) {
|
|
int a = 0;
|
|
int b = arr[a][j];
|
|
}
|
|
// CHECK: for (int j = 0; j < M; ++j) {
|
|
// CHECK-NEXT: int a = 0;
|
|
// CHECK-NEXT: int b = arr[a][j];
|
|
// CHECK-NEXT: }
|
|
}
|