| // This checks that there's no issue with the preprocessor handling user or built-in macro |
| // expansion during dependency scanning. |
| |
| // RUN: rm -rf %t |
| // RUN: split-file %s %t |
| // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json |
| |
| // RUN: clang-scan-deps -compilation-database %t/cdb.json | FileCheck %s |
| |
| // CHECK: test.o: |
| // CHECK-NEXT: test.cpp |
| // CHECK-NEXT: header1.h |
| // CHECK-NEXT: header2.h |
| |
| //--- cdb.json.template |
| [{ |
| "directory" : "DIR", |
| "command" : "clang -target x86_64-apple-macosx10.7 -c DIR/test.cpp -o DIR/test.o", |
| "file" : "DIR/test.o" |
| }] |
| |
| //--- test.cpp |
| #define FN_MACRO(x) 1 |
| #if FN_MACRO(a) |
| #include "header1.h" |
| #endif |
| |
| #if __has_cpp_attribute(clang::fallthrough) |
| #include "header2.h" |
| #endif |
| |
| //--- header1.h |
| #ifndef _HEADER1_H_ |
| #define _HEADER1_H_ |
| #endif |
| |
| //--- header2.h |
| #ifndef _HEADER2_H_ |
| #define _HEADER2_H_ |
| #endif |