Richard Smith | f2baa70 | 2014-02-24 20:45:00 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -E %s | FileCheck --strict-whitespace %s |
| 2 | |
Eli Friedman | 0834a4b | 2013-09-19 00:41:32 +0000 | [diff] [blame] | 3 | // Check that this doesn't crash |
| 4 | |
| 5 | #define IDENTITY1(x) x |
| 6 | #define IDENTITY2(x) IDENTITY1(x) IDENTITY1(x) IDENTITY1(x) IDENTITY1(x) |
| 7 | #define IDENTITY3(x) IDENTITY2(x) IDENTITY2(x) IDENTITY2(x) IDENTITY2(x) |
| 8 | #define IDENTITY4(x) IDENTITY3(x) IDENTITY3(x) IDENTITY3(x) IDENTITY3(x) |
| 9 | #define IDENTITY5(x) IDENTITY4(x) IDENTITY4(x) IDENTITY4(x) IDENTITY4(x) |
| 10 | #define IDENTITY6(x) IDENTITY5(x) IDENTITY5(x) IDENTITY5(x) IDENTITY5(x) |
| 11 | #define IDENTITY7(x) IDENTITY6(x) IDENTITY6(x) IDENTITY6(x) IDENTITY6(x) |
| 12 | #define IDENTITY8(x) IDENTITY7(x) IDENTITY7(x) IDENTITY7(x) IDENTITY7(x) |
| 13 | #define IDENTITY9(x) IDENTITY8(x) IDENTITY8(x) IDENTITY8(x) IDENTITY8(x) |
| 14 | #define IDENTITY0(x) IDENTITY9(x) IDENTITY9(x) IDENTITY9(x) IDENTITY9(x) |
| 15 | IDENTITY0() |
Richard Smith | f2baa70 | 2014-02-24 20:45:00 +0000 | [diff] [blame] | 16 | |
| 17 | #define FOO() BAR() second |
| 18 | #define BAR() |
| 19 | first // CHECK: {{^}}first{{$}} |
Richard Smith | 5b2f7c5 | 2014-02-24 20:50:36 +0000 | [diff] [blame] | 20 | FOO() // CHECK: {{^}} second{{$}} |
Richard Smith | f2baa70 | 2014-02-24 20:45:00 +0000 | [diff] [blame] | 21 | third // CHECK: {{^}}third{{$}} |