mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-25 22:38:56 -04:00

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
20 lines
524 B
C
20 lines
524 B
C
// 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.
|