llvm-project/clang/test/PCH/pch-through4a.cpp
Mike Rice 5550aa0023 When skipping code at the start of a file during PCH use, Preprocessor::Lex
is not used since it consumes all preprocessor directives until it returns
a real token. Using the specific Lexer (i.e. CurLexer->Lex) makes it
possible to stop skipping after an #include or #pragma hdrstop. Previously
the skipping code was only handling CurLexer, now all will be handled
correctly.

Fixes: llvm.org/PR41585

Differential Revision: https://reviews.llvm.org/D61217

llvm-svn: 359506
2019-04-29 21:21:17 +00:00

17 lines
555 B
C++

// expected-no-diagnostics
// Create PCH with a through header.
// RUN: %clang_cc1 -verify -I %S -emit-pch \
// RUN: -pch-through-header=Inputs/pch-through1.h \
// RUN: -fms-extensions -o %t.pch -x c++-header %s
// Create the PCH object
// RUN: %clang_cc1 -verify -I %S -emit-obj -include-pch %t.pch \
// RUN: -pch-through-header=Inputs/pch-through1.h \
// RUN: -fms-extensions -o %t.obj -x c++ %s
#define Source(x,y)
#define InOut(size) Source(InOut, (size))
void f(InOut(a) char *b, unsigned long a);
#include "Inputs/pch-through1.h"
int other;