diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-13 01:29:17 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-13 01:29:17 +0000 |
commit | 0af3ba17486de80987f8f22f5d418cef781a471c (patch) | |
tree | b8fa061796bbaae27e8510974f1fbe5924ff483b /clang/lib/Frontend | |
parent | 0d6c061401d9b06cbcdc1cb3511d3b5332cee3d8 (diff) | |
download | bcm5719-llvm-0af3ba17486de80987f8f22f5d418cef781a471c.tar.gz bcm5719-llvm-0af3ba17486de80987f8f22f5d418cef781a471c.zip |
implement the microsoft/gnu "__COUNTER__" macro: rdar://4329310
llvm-svn: 68933
Diffstat (limited to 'clang/lib/Frontend')
-rw-r--r-- | clang/lib/Frontend/PCHReader.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Frontend/PCHWriter.cpp | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/clang/lib/Frontend/PCHReader.cpp b/clang/lib/Frontend/PCHReader.cpp index b916deaa690..fa6ad6f0a0a 100644 --- a/clang/lib/Frontend/PCHReader.cpp +++ b/clang/lib/Frontend/PCHReader.cpp @@ -318,7 +318,11 @@ bool PCHReader::ReadPreprocessorBlock() { switch (RecType) { default: // Default behavior: ignore unknown records. break; - + case pch::PP_COUNTER_VALUE: + if (!Record.empty()) + PP.setCounterValue(Record[0]); + break; + case pch::PP_MACRO_OBJECT_LIKE: case pch::PP_MACRO_FUNCTION_LIKE: { IdentifierInfo *II = DecodeIdentifierInfo(Record[0]); diff --git a/clang/lib/Frontend/PCHWriter.cpp b/clang/lib/Frontend/PCHWriter.cpp index 6faf37fb295..2cf932ce9b6 100644 --- a/clang/lib/Frontend/PCHWriter.cpp +++ b/clang/lib/Frontend/PCHWriter.cpp @@ -567,6 +567,13 @@ void PCHWriter::WritePreprocessor(const Preprocessor &PP) { RecordData Record; + // If the preprocessor __COUNTER__ value has been bumped, remember it. + if (PP.getCounterValue() != 0) { + Record.push_back(PP.getCounterValue()); + S.EmitRecord(pch::PP_COUNTER_VALUE, Record); + Record.clear(); + } + // Loop over all the macro definitions that are live at the end of the file, // emitting each to the PP section. // FIXME: Eventually we want to emit an index so that we can lazily load @@ -627,9 +634,6 @@ void PCHWriter::WritePreprocessor(const Preprocessor &PP) { } - // TODO: someday when PP supports __COUNTER__, emit a record for its value if - // non-zero. - S.ExitBlock(); } |