| // 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: t.c |
| // CHECK: top.h |
| // CHECK: n1.h |
| // CHECK: n2.h |
| // CHECK: n3.h |
| |
| //--- cdb.json.template |
| [ |
| { |
| "directory": "DIR", |
| "command": "clang -fsyntax-only DIR/t.c", |
| "file": "DIR/t.c" |
| } |
| ] |
| |
| //--- t.c |
| |
| #include "top.h" |
| #define INCLUDE_N3 |
| #include "top.h" |
| |
| //--- top.h |
| #ifndef _TOP_H_ |
| #define _TOP_H_ |
| |
| #include "n1.h" |
| |
| #endif |
| |
| // More stuff after following '#endif', should invalidate the macro guard optimization, |
| // and allow `top.h` to get re-included. |
| #include "n2.h" |
| |
| //--- n1.h |
| |
| //--- n2.h |
| #ifdef INCLUDE_N3 |
| #include "n3.h" |
| #endif |
| |
| //--- n3.h |