Daniel Marjamaki
e59f8d7f1d
[clang] Refactoring of conditions so they use isOneOf() instead of multiple is().
...
llvm-svn: 240008
2015-06-18 10:59:26 +00:00
Richard Smith
3e3a705062
[c++1z] Support for u8 character literals.
...
llvm-svn: 221576
2014-11-08 06:08:42 +00:00
Ben Langmuir
5418f40127
Avoid a couple of assertions when preprocessing with modules
...
1. We were hitting the NextIsPrevious assertion because we were trying
to merge decl chains that were independent of each other because we had
no Sema object to allow them to find existing decls. This is fixed by
delaying loading the "preloaded" decls until Sema is available.
2. We were trying to get identifier info from an annotation token, which
asserts. The fix is to special-case the module annotations in the
preprocessed output printer.
Fixed in a single commit because when you hit 1 you almost invariably
hit 2 as well.
llvm-svn: 217550
2014-09-10 21:29:41 +00:00
Ben Langmuir
5eb7cb74a7
Revert "Fix assertion failures on annot_* tokens in clang -E"
...
This is causing a failure in the msan buildbot that I am having trouble
reproducing. Reverting until I can figure out what went wrong.
llvm-svn: 200492
2014-01-30 21:50:18 +00:00
Ben Langmuir
5944ecd64c
Fix assertion failures on annot_* tokens in clang -E
...
In particular, #pragma clang __debug, and #include implicitly changed
into @import were causing assertion failures.
llvm-svn: 200475
2014-01-30 18:09:55 +00:00
Jordan Rose
a08ed5965c
Simplify logic for avoiding concatenation after numeric constants.
...
I threw in a couple of test cases for UD-suffixes -- already working, but
it wasn't immediately obvious to me.
llvm-svn: 174767
2013-02-08 22:30:31 +00:00
Argyrios Kyrtzidis
005206a813
[Preprocessor] When checking if we can concatenate two tokens, check
...
if they were already concatenated in source using the spelling locations
even if they came from a macro expansion.
This fixes an issue where a GUID passed as macro argument ends up
malformed after preprocessing because we added spaces inside it.
rdar://13016645
llvm-svn: 173826
2013-01-29 20:28:24 +00:00
Richard Smith
2bf7fdb723
s/CPlusPlus0x/CPlusPlus11/g
...
llvm-svn: 171367
2013-01-02 11:42:31 +00:00
Joerg Sonnenberger
42cf26883e
Add missing cctype includes.
...
llvm-svn: 161660
2012-08-10 10:58:18 +00:00
David Blaikie
bbafb8a745
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
...
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
2012-03-11 07:00:24 +00:00
Richard Smith
d67aea28f6
User-defined literals: reject string and character UDLs in all places where the
...
grammar requires a string-literal and not a user-defined-string-literal. The
two constructs are still represented by the same TokenKind, in order to prevent
a combinatorial explosion of different kinds of token. A flag on Token tracks
whether a ud-suffix is present, in order to prevent clients from needing to look
at the token's spelling.
llvm-svn: 152098
2012-03-06 03:21:47 +00:00
David Blaikie
8a40f700e6
Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it)
...
llvm-svn: 148292
2012-01-17 06:56:22 +00:00
Argyrios Kyrtzidis
e6e67deeed
Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset.
...
It already works (and is useful with) macro locs as well.
llvm-svn: 140057
2011-09-19 20:40:19 +00:00
Craig Topper
5265bb211d
Raw string followup. Pass a couple StringRefs by value.
...
llvm-svn: 137301
2011-08-11 05:10:55 +00:00
Craig Topper
54edccafc5
Add support for C++0x raw string literals.
...
llvm-svn: 137298
2011-08-11 04:06:15 +00:00
Douglas Gregor
fb65e592e0
Add support for C++0x unicode string and character literals, from Craig Topper!
...
llvm-svn: 136210
2011-07-27 05:40:30 +00:00
Abramo Bagnara
ea4f7c7761
Introduced raw_identifier token kind.
...
llvm-svn: 122394
2010-12-22 08:23:18 +00:00
Chris Lattner
0384e63501
make the token paste avoidance logic turn "..." into ".. ." instead of ". . ."
...
when avoiding paste. Patch by David Peixotto!
llvm-svn: 101218
2010-04-14 03:57:19 +00:00
Chris Lattner
80dbccd1bf
fix a bug in paste avoidance which would cause us to accidentally
...
form a >>=. Patch by Abramo Bagnara, testcase by me.
llvm-svn: 99624
2010-03-26 17:10:02 +00:00
Daniel Dunbar
2c422dc9ca
Move clients to use IdentifierInfo::getNameStart() instead of getName()
...
llvm-svn: 84436
2009-10-18 20:26:12 +00:00
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Eli Friedman
dd2ab963de
PR4395: Don't detect token concatenation in C mode for
...
C++-specific tokens.
llvm-svn: 73408
2009-06-15 19:48:50 +00:00
Eli Friedman
98dbc1c79a
Don't vary token concatenation based on the language options; this
...
behavior is more likely to be confusing than useful.
llvm-svn: 72499
2009-05-27 22:33:06 +00:00
Chris Lattner
ca515ccb49
apply Eli's patch to fix PR4008, with a testcase. Thanks Eli!
...
llvm-svn: 69750
2009-04-21 23:28:41 +00:00
Daniel Dunbar
dc78bd9f79
Fix -E mismatch; an identifier followed by a numeric constant does not
...
require a space (to avoid concatenation) if the numeric constant had a
leading period.
- PR3819.
llvm-svn: 67163
2009-03-18 03:32:24 +00:00
Chris Lattner
644d452de5
factor token concatenation avoidance logic out of
...
PrintPreprocessedOutput into its own file. No functionality change.
llvm-svn: 64418
2009-02-13 00:46:04 +00:00