aboutsummaryrefslogtreecommitdiff
path: root/lib/Lex
AgeCommit message (Collapse)Author
2009-04-25Silence gcc warnings.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70086 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-24Add PCH support for #import.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69987 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-24fix rdar://6816766 - Crash with function-like macro test at end of directive.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69964 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-24simplification and speedupChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69963 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21apply Eli's patch to fix PR4008, with a testcase. Thanks Eli!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21improve MacroInfo to track the source range of the macro definition,Chris Lattner
patch by Alexei Svitkine! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69659 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21add a preprocessor callback function for #undef, patch byChris Lattner
Alexei Svitkine! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69656 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21Use an APInt of target int size to detect overflow while parsing multichars.Sanjiv Gupta
So 'abc' on i16 platforms will warn but not on i32 platforms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69653 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20fix the second half of PR4006 and rdar://6807000 by treatingChris Lattner
() as being either zero arguments or one empty argument depending on situation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69627 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20Move the on-disk hash table code into its own header. No functionality change.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69580 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19implement "#pragma GCC diagnostic". Besides being a nice feature, thisChris Lattner
will let us test for multiple different warning modes in the same file in regression tests. This implements rdar://2362963, a 10-year old feature request :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Warn about uses of #pragma STDC FENV_ACCESS ON, since we don't Chris Lattner
support it. I don't know what evaluation method we use for complex arithmetic, so I don't know whether/if we should warn about use of CX_LIMITED_RANGE. This concludes my planned hacking on STDC pragmas, flame away :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69556 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19diagnose invalid syntax of STDC pragmas.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69554 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19reject invalid stuff in the STDC namespace.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69551 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19stub out STDC #pragmas.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69550 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19basic support for -Wunknown-pragmas, more coming.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69547 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19move token paste poisoning diagnostics to after the instantiation locChris Lattner
for a token is set, this makes the diagnostic "expanded from stack" work for this diagnostic. Add a testcase for PR3918. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69544 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Fix PR3918: Invalid use of __VA_ARGS__ not diagnosed,Chris Lattner
by rejecting invalid poisoned tokens in the token pasting path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69536 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Fix PR4006, incorrect handling of __VA_ARGS__ when it was the first tokenChris Lattner
in a function-like macro body. This has the added bonus of moving some function-like macro specific code out of the object-like macro codepath. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69530 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18Fix PR3917: the location of a #line directive is the location of the first _.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69485 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18Change Preprocessor::AdvanceToTokenCharacter to stop atChris Lattner
the first real character of a token. For example, advancing to byte 3 of foo\ bar should stop at the b, not the \. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69484 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18add a new Lexer::SkipEscapedNewLines method.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69483 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18factor escape newline measuring out into its own helper function.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69482 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18remove unneeded scopes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69481 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18fix typoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69479 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18more fun with line markers: the digit string is required to be interpretedChris Lattner
as decimal, even if it starts with 0. Also, since things like 0x1 are completely illegal, don't even bother using numericliteralparser for them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69454 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18fix PR3927 by being more careful about the pp test for identifier.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69423 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18second half of PR3940: #line requires simple digit sequence.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69422 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18enforce requirements imposed by C90 6.8 TC1, fixing PR3919.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69415 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18Fix PR3938 by taking into account C99 6.10p4.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69413 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18Substantially restructure function-like macro argument parsing.Chris Lattner
Highlights: PP::isNextPPTokenLParen() no longer eats the ( when present. We now simplify slightly the logic parsing macro arguments. We now handle PR3937 and other related cases correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69411 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Fix two problems from PR3916, and one problem I noticed while hackingChris Lattner
on the code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69404 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17implement PR3940: #line numbers not fully checkedChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69403 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17#line is allowed to have macros that expand to nothing after them.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69401 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Change Lexer::MeasureTokenLength to take a LangOptions reference.Chris Lattner
This allows it to accurately measure tokens, so that we get: t.cpp:8:13: error: unknown type name 'X' static foo::X P; ~~~~~^ instead of the woefully inferior: t.cpp:8:13: error: unknown type name 'X' static foo::X P; ~~~~ ^ Most of this is just plumbing to push the reference around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69099 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14temporarily revert r69046Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69054 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Literal value calculation isn't likely to overflow on targets having int as ↵Sanjiv Gupta
32 or less. Fixing the assert as it otherwise triggers for PIC16 which as i16 as int. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69046 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Offer a fixit hint for our warning about tokens at the end of a directive:Chris Lattner
t.c:3:8: warning: extra tokens at end of #endif directive #endif foo ^ // Don't do this in strict-C89 mode because bcpl comments aren't valid there, and it is too much trouble to analyze whether C block comments are safe. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Fix the #import / #include_next "extra tokens at end of #foo directive" Chris Lattner
Warning to properly report that it is an import/include_next instead of claiming it is a #include. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69023 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-13Fix assertion failure in PTH when tokens followed a closing #endif.Daniel Dunbar
- Ted, please check. - Missing test case because PTH won't reliably cache the tokens in a test case. *cough* git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68966 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-13implement the microsoft/gnu "__COUNTER__" macro: rdar://4329310Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68933 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-12add a ppcallback hook for macro definitions.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68883 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-10Compare the predefines buffer in the PCH file with the predefinesDouglas Gregor
buffer generated for the current translation unit. If they are different, complain and then ignore the PCH file. This effectively checks for all compilation options that somehow would affect preprocessor state (-D, -U, -include, the dreaded -imacros, etc.). When we do accept the PCH file, throw away the contents of the predefines buffer rather than parsing them, since all of the results of that parsing are already stored in the PCH file. This eliminates the ugliness with the redefinition of __builtin_va_list, among other things. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68838 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-10do a dance with predefines, and finally enable reading of macros fromChris Lattner
PCH. This works now, except for limitations not being able to do things with identifiers. The basic example in the testcase works though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68832 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-10move a bunch of code for initializing the predefines buffer out of ↵Chris Lattner
Preprocessor.cpp into clang-cc.cpp. This makes it so clang-cc constructs the *entire* predefines buffer, not just half of it. A bonus of this is that we get to kill a copy of DefineBuiltinMacro. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68830 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-10simplify code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68825 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-10PCH serialization/deserialization of the source manager. With thisDouglas Gregor
improvement, source locations read from the PCH file will properly resolve to the source files that were used to build the PCH file itself. Once we have the preprocessor state stored in the PCH file, source locations that refer to macro instantiations that occur in the PCH file should have the appropriate instantiation information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08finish the implementation of -imacros. The driver still needs to be hooked up.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68640 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08reject the #__include_macros directive unless it comes from the Chris Lattner
predefines buffer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68627 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Add initial support for -imacros. Right now it has the same semantics asChris Lattner
-include, but that will be fixed soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68625 91177308-0d34-0410-b5e6-96231b3b80d8