Jordan Rose
4a04d445af
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174767 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-08 22:30:31 +00:00
Argyrios Kyrtzidis
fcf896078e
[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
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173826 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-29 20:28:24 +00:00
Richard Smith
80ad52f327
s/CPlusPlus0x/CPlusPlus11/g
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171367 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-02 11:42:31 +00:00
Joerg Sonnenberger
7094dee95f
Add missing cctype includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161660 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-10 10:58:18 +00:00
David Blaikie
4e4d08403c
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
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11 07:00:24 +00:00
Richard Smith
99831e4677
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152098 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-06 03:21:47 +00:00
David Blaikie
7530c034c0
Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it)
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148292 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-17 06:56:22 +00:00
Argyrios Kyrtzidis
a64ccefdf0
Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset.
...
It already works (and is useful with) macro locs as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140057 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19 20:40:19 +00:00
Craig Topper
03720fce6e
Raw string followup. Pass a couple StringRefs by value.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137301 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-11 05:10:55 +00:00
Craig Topper
2fa4e86b4f
Add support for C++0x raw string literals.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137298 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-11 04:06:15 +00:00
Douglas Gregor
5cee119558
Add support for C++0x unicode string and character literals, from Craig Topper!
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136210 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-27 05:40:30 +00:00
Abramo Bagnara
c4bf2b9afb
Introduced raw_identifier token kind.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122394 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22 08:23:18 +00:00
Chris Lattner
8877321ca6
make the token paste avoidance logic turn "..." into ".. ." instead of ". . ."
...
when avoiding paste. Patch by David Peixotto!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101218 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-14 03:57:19 +00:00
Chris Lattner
86851109b8
fix a bug in paste avoidance which would cause us to accidentally
...
form a >>=. Patch by Abramo Bagnara, testcase by me.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99624 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26 17:10:02 +00:00
Daniel Dunbar
e013d685c6
Move clients to use IdentifierInfo::getNameStart() instead of getName()
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84436 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-18 20:26:12 +00:00
Mike Stump
1eb4433ac4
Remove tabs, and whitespace cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 15:08:12 +00:00
Eli Friedman
8849f11903
PR4395: Don't detect token concatenation in C mode for
...
C++-specific tokens.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73408 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 19:48:50 +00:00
Eli Friedman
896ccf83eb
Don't vary token concatenation based on the language options; this
...
behavior is more likely to be confusing than useful.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72499 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27 22:33:06 +00:00
Chris Lattner
e1614bb01c
apply Eli's patch to fix PR4008, with a testcase. Thanks Eli!
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21 23:28:41 +00:00
Daniel Dunbar
99c7622d1f
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67163 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-18 03:32:24 +00:00
Chris Lattner
d7038e18ef
factor token concatenation avoidance logic out of
...
PrintPreprocessedOutput into its own file. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64418 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13 00:46:04 +00:00