summaryrefslogtreecommitdiffstats
path: root/clang/test/Lexer/preamble2.c
diff options
context:
space:
mode:
authorErik Verbruggen <erikjv@me.com>2017-05-30 11:54:55 +0000
committerErik Verbruggen <erikjv@me.com>2017-05-30 11:54:55 +0000
commitb34c79ff277b20ec00f66c50bf550f2d76ea2108 (patch)
treed21dc0c9da5e60c9d5d305cf8230514b202b19aa /clang/test/Lexer/preamble2.c
parent626c997affc93fbf14fc48f6dad2ed430219cf9c (diff)
downloadbcm5719-llvm-b34c79ff277b20ec00f66c50bf550f2d76ea2108.tar.gz
bcm5719-llvm-b34c79ff277b20ec00f66c50bf550f2d76ea2108.zip
Allow for unfinished #if blocks in preambles
Previously, a preamble only included #if blocks (and friends like ifdef) if there was a corresponding #endif before any declaration or definition. The problem is that any header file that uses include guards will not have a preamble generated, which can make code-completion very slow. To prevent errors about unbalanced preprocessor conditionals in the preamble, and unbalanced preprocessor conditionals after a preamble containing unfinished conditionals, the conditional stack is stored in the pch file. This fixes PR26045. Differential Revision: http://reviews.llvm.org/D15994 llvm-svn: 304207
Diffstat (limited to 'clang/test/Lexer/preamble2.c')
-rw-r--r--clang/test/Lexer/preamble2.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/Lexer/preamble2.c b/clang/test/Lexer/preamble2.c
new file mode 100644
index 00000000000..499a9a22a5b
--- /dev/null
+++ b/clang/test/Lexer/preamble2.c
@@ -0,0 +1,19 @@
+// Preamble detection test: header with an include guard.
+#ifndef HEADER_H
+#define HEADER_H
+#include "foo"
+int bar;
+#endif
+
+// This test checks for detection of the preamble of a file, which
+// includes all of the starting comments and #includes.
+
+// RUN: %clang_cc1 -print-preamble %s > %t
+// RUN: echo END. >> %t
+// RUN: FileCheck < %t %s
+
+// CHECK: // Preamble detection test: header with an include guard.
+// CHECK-NEXT: #ifndef HEADER_H
+// CHECK-NEXT: #define HEADER_H
+// CHECK-NEXT: #include "foo"
+// CHECK-NEXT: END.
OpenPOWER on IntegriCloud