diff options
author | Nico Weber <nicolasweber@gmx.de> | 2016-03-23 18:00:22 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2016-03-23 18:00:22 +0000 |
commit | 149d9522fb6579008ac79213c620ab1549dbc50b (patch) | |
tree | 255c01f649c6ebf4277ee3062c9e9c4c758c233d /clang/test | |
parent | 8e38c66645b3452eae659d97130c028dd30e5c21 (diff) | |
download | bcm5719-llvm-149d9522fb6579008ac79213c620ab1549dbc50b.tar.gz bcm5719-llvm-149d9522fb6579008ac79213c620ab1549dbc50b.zip |
clang-cl: Include /FI headers in /showIncludes output.
-H in gcc mode doesn't print -include headers, but they are included in
depfiles written by MMD and friends. Since /showIncludes is what's used instead
of depfiles, printing /FI there seems important (and matches cl.exe).
Instead of giving HeaderIncludeGen more options, just switch on ShowAllHeaders
in clang-cl mode and let clang::InitializePreprocessor() not put -include flags
in the <command line> block. This changes the behavior of -E slightly, and it
removes the <command line> flag from the output triggered by setting the
obscure CC_PRINT_HEADERS=1 env var to true while running clang. Both of these
seem ok to change.
http://reviews.llvm.org/D18401
llvm-svn: 264174
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Driver/cl-pch-showincludes.cpp | 17 | ||||
-rw-r--r-- | clang/test/Frontend/print-header-includes.c | 24 |
2 files changed, 21 insertions, 20 deletions
diff --git a/clang/test/Driver/cl-pch-showincludes.cpp b/clang/test/Driver/cl-pch-showincludes.cpp index 9182635fa19..9ebe68899db 100644 --- a/clang/test/Driver/cl-pch-showincludes.cpp +++ b/clang/test/Driver/cl-pch-showincludes.cpp @@ -8,16 +8,17 @@ // When building the pch, header1.h (included by header2.h), header2.h (the pch // input itself) and header3.h (included directly, above) should be printed. -// RUN: %clang_cl -Werror /showIncludes /I%S/Inputs /Ycheader2.h /FIheader2.h /Fp%t.pch /c /Fo%t -- %s 2>&1 \ -// RUN: | FileCheck -check-prefix=CHECK-YC %s -// CHECK-YC: Note: including file: {{.+header2.h}} -// CHECK-YC: Note: including file: {{.+header1.h}} -// CHECK-YC: Note: including file: {{.+header3.h}} +// RUN: %clang_cl -Werror /showIncludes /I%S/Inputs /Ycheader2.h /FIheader2.h /Fp%t.pch /c /Fo%t -- %s \ +// RUN: | FileCheck --strict-whitespace -check-prefix=CHECK-YC %s +// CHECK-YC: Note: including file: {{[^ ]*header2.h}} +// FIXME: header1.h should be indented one more: +// CHECK-YC: Note: including file: {{[^ ]*header1.h}} +// CHECK-YC: Note: including file: {{[^ ]*header3.h}} // When using the pch, only the direct include is printed. -// RUN: %clang_cl -Werror /showIncludes /I%S/Inputs /Yuheader2.h /FIheader2.h /Fp%t.pch /c /Fo%t -- %s 2>&1 \ -// RUN: | FileCheck -check-prefix=CHECK-YU %s +// RUN: %clang_cl -Werror /showIncludes /I%S/Inputs /Yuheader2.h /FIheader2.h /Fp%t.pch /c /Fo%t -- %s \ +// RUN: | FileCheck --strict-whitespace -check-prefix=CHECK-YU %s // CHECK-YU-NOT: Note: including file: {{.*pch}} // CHECK-YU-NOT: Note: including file: {{.*header1.h}} // CHECK-YU-NOT: Note: including file: {{.*header2.h}} -// CHECK-YU: Note: including file: {{.+header3.h}} +// CHECK-YU: Note: including file: {{[^ ]*header3.h}} diff --git a/clang/test/Frontend/print-header-includes.c b/clang/test/Frontend/print-header-includes.c index 3f2b0696cd1..045c02b941b 100644 --- a/clang/test/Frontend/print-header-includes.c +++ b/clang/test/Frontend/print-header-includes.c @@ -1,24 +1,24 @@ -// RUN: cd %S -// RUN: %clang_cc1 -include Inputs/test3.h -E -H -o %t.out %s 2> %t.stderr +// RUN: %clang_cc1 -I%S -include Inputs/test3.h -E -H -o /dev/null %s 2> %t.stderr // RUN: FileCheck < %t.stderr %s // CHECK-NOT: test3.h // CHECK: . {{.*test.h}} // CHECK: .. {{.*test2.h}} -// RUN: %clang_cc1 -include Inputs/test3.h -E --show-includes -o %t.out %s > %t.stdout -// RUN: FileCheck --check-prefix=MS < %t.stdout %s -// MS-NOT: test3.h -// MS: Note: including file: {{.*test.h}} -// MS: Note: including file: {{.*test2.h}} +// RUN: %clang_cc1 -I%S -include Inputs/test3.h -E --show-includes -o /dev/null %s | \ +// RUN: FileCheck --strict-whitespace --check-prefix=MS %s +// MS-NOT: <command line> +// MS: Note: including file: {{[^ ]*test3.h}} +// MS: Note: including file: {{[^ ]*test.h}} +// MS: Note: including file: {{[^ ]*test2.h}} // MS-NOT: Note // RUN: echo "fun:foo" > %t.blacklist -// RUN: %clang_cc1 -fsanitize=address -fdepfile-entry=%t.blacklist -E --show-includes -o %t.out %s > %t.stdout -// RUN: FileCheck --check-prefix=MS-BLACKLIST < %t.stdout %s -// MS-BLACKLIST: Note: including file: {{.*\.blacklist}} -// MS-BLACKLIST: Note: including file: {{.*test.h}} -// MS-BLACKLIST: Note: including file: {{.*test2.h}} +// RUN: %clang_cc1 -I%S -fsanitize=address -fdepfile-entry=%t.blacklist -E --show-includes -o /dev/null %s | \ +// RUN: FileCheck --strict-whitespace --check-prefix=MS-BLACKLIST %s +// MS-BLACKLIST: Note: including file: {{[^ ]*\.blacklist}} +// MS-BLACKLIST: Note: including file: {{[^ ]*test.h}} +// MS-BLACKLIST: Note: including file: {{[^ ]*test2.h}} // MS-BLACKLIST-NOT: Note #include "Inputs/test.h" |