macro_expand_empty.c 927 B

123456789101112131415161718192021
  1. // RUN: %clang_cc1 -E %s | FileCheck --strict-whitespace %s
  2. // Check that this doesn't crash
  3. #define IDENTITY1(x) x
  4. #define IDENTITY2(x) IDENTITY1(x) IDENTITY1(x) IDENTITY1(x) IDENTITY1(x)
  5. #define IDENTITY3(x) IDENTITY2(x) IDENTITY2(x) IDENTITY2(x) IDENTITY2(x)
  6. #define IDENTITY4(x) IDENTITY3(x) IDENTITY3(x) IDENTITY3(x) IDENTITY3(x)
  7. #define IDENTITY5(x) IDENTITY4(x) IDENTITY4(x) IDENTITY4(x) IDENTITY4(x)
  8. #define IDENTITY6(x) IDENTITY5(x) IDENTITY5(x) IDENTITY5(x) IDENTITY5(x)
  9. #define IDENTITY7(x) IDENTITY6(x) IDENTITY6(x) IDENTITY6(x) IDENTITY6(x)
  10. #define IDENTITY8(x) IDENTITY7(x) IDENTITY7(x) IDENTITY7(x) IDENTITY7(x)
  11. #define IDENTITY9(x) IDENTITY8(x) IDENTITY8(x) IDENTITY8(x) IDENTITY8(x)
  12. #define IDENTITY0(x) IDENTITY9(x) IDENTITY9(x) IDENTITY9(x) IDENTITY9(x)
  13. IDENTITY0()
  14. #define FOO() BAR() second
  15. #define BAR()
  16. first // CHECK: {{^}}first{{$}}
  17. FOO() // CHECK: {{^}} second{{$}}
  18. third // CHECK: {{^}}third{{$}}