| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
registered when PCH wasn't being used. We should always install (in BuiltinInfo)
information about target-specific builtins, but we shouldn't register any builtin
identifier infos. This fixes the build of apps that use PCH and target specific
builtins together.
llvm-svn: 73492
|
| |
|
|
|
|
| |
C++-specific tokens.
llvm-svn: 73408
|
| |
|
|
|
|
|
| |
the file at the point of the pragma. This allows clang to know that all
sourcelocations after the pragma are in a system header.
llvm-svn: 73376
|
| |
|
|
|
|
| |
Curfman!
llvm-svn: 73370
|
| |
|
|
|
|
|
|
|
| |
builtin preprocessor macro. This appears to work with two caveats:
1) builtins are registered in -E mode, and 2) target-specific builtins
are unconditionally registered even if they aren't supported by the
target (e.g. SSE4 builtin when only SSE1 is enabled).
llvm-svn: 73289
|
| |
|
|
| |
llvm-svn: 73153
|
| |
|
|
| |
llvm-svn: 72928
|
| |
|
|
|
|
| |
preprocessor.
llvm-svn: 72686
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
diagnostic to include the full instantiation location for the
invalid paste. For:
#define foo(a, b) a ## b
#define bar(x) foo(x, ])
bar(a)
bar(zdy)
Instead of:
t.c:3:22: error: pasting formed 'a]', an invalid preprocessing token
#define foo(a, b) a ## b
^
t.c:3:22: error: pasting formed 'zdy]', an invalid preprocessing token
we now produce:
t.c:7:1: error: pasting formed 'a]', an invalid preprocessing token
bar(a)
^
t.c:4:16: note: instantiated from:
#define bar(x) foo(x, ])
^
t.c:3:22: note: instantiated from:
#define foo(a, b) a ## b
^
t.c:8:1: error: pasting formed 'zdy]', an invalid preprocessing token
bar(zdy)
^
t.c:4:16: note: instantiated from:
#define bar(x) foo(x, ])
^
t.c:3:22: note: instantiated from:
#define foo(a, b) a ## b
^
llvm-svn: 72519
|
| |
|
|
|
|
| |
behavior is more likely to be confusing than useful.
llvm-svn: 72499
|
| |
|
|
| |
llvm-svn: 72497
|
| |
|
|
|
|
|
|
|
|
|
|
| |
1. When we accept "#garbage" in asm-with-cpp mode, change the token kind
of the # to unknown so that the preprocessor won't try to process it as
a real #. This fixes a crash on the attached example
2. Fix macro definition extents processing to handle #foo at the end of a
macro to say the definition ends with the foo, not the #.
This is a follow-on fix to r72283, and rdar://6916026
llvm-svn: 72388
|
| |
|
|
| |
llvm-svn: 72386
|
| |
|
|
|
|
| |
the RHS. Fixes assembler-with-cpp issue reported on cfe-dev.
llvm-svn: 72370
|
| |
|
|
|
|
| |
non-argument names, pass the tokens through.
llvm-svn: 72283
|
| |
|
|
|
|
|
|
| |
Preprocessor::EnterTokenStream.
So check for annotation before using the Token's IdentifierInfo.
llvm-svn: 72278
|
| |
|
|
| |
llvm-svn: 72210
|
| |
|
|
| |
llvm-svn: 71960
|
| |
|
|
| |
llvm-svn: 71643
|
| |
|
|
|
|
|
|
|
| |
two empty arguments. Also, add an assert so that this bug
manifests as an assertion failure, not a valgrind problem.
This fixes rdar://6880648 - [cpp] crash in ArgNeedsPreexpansion
llvm-svn: 71616
|
| |
|
|
| |
llvm-svn: 71572
|
| |
|
|
|
|
| |
pasted token.
llvm-svn: 70793
|
| |
|
|
|
|
| |
and apparently not part of -Wall
llvm-svn: 70329
|
| |
|
|
| |
llvm-svn: 70315
|
| |
|
|
| |
llvm-svn: 70283
|
| |
|
|
|
|
|
|
|
|
|
|
| |
that if we're going to print an extension warning anyway,
there's no point to changing behavior based on NoExtensions: it will
only make error recovery worse.
Note that this doesn't cause any behavior change because NoExtensions
isn't used by the current front-end. I'm still considering what to do about
the remaining use of NoExtensions in IdentifierTable.cpp.
llvm-svn: 70273
|
| |
|
|
|
|
|
|
| |
PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes
us from reading 503 identifiers down to 37 and from 470 macros down to
4. It also results in an 8% performance improvement.
llvm-svn: 70094
|
| |
|
|
| |
llvm-svn: 70086
|
| |
|
|
| |
llvm-svn: 69987
|
| |
|
|
| |
llvm-svn: 69964
|
| |
|
|
| |
llvm-svn: 69963
|
| |
|
|
| |
llvm-svn: 69750
|
| |
|
|
|
|
| |
patch by Alexei Svitkine!
llvm-svn: 69659
|
| |
|
|
|
|
| |
Alexei Svitkine!
llvm-svn: 69656
|
| |
|
|
|
|
| |
So 'abc' on i16 platforms will warn but not on i32 platforms.
llvm-svn: 69653
|
| |
|
|
|
|
|
| |
() as being either zero arguments or one empty argument depending
on situation.
llvm-svn: 69627
|
| |
|
|
| |
llvm-svn: 69580
|
| |
|
|
|
|
|
|
|
| |
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 :)
llvm-svn: 69560
|
| |
|
|
|
|
|
|
|
|
| |
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 :)
llvm-svn: 69556
|
| |
|
|
| |
llvm-svn: 69554
|
| |
|
|
| |
llvm-svn: 69551
|
| |
|
|
| |
llvm-svn: 69550
|
| |
|
|
| |
llvm-svn: 69547
|
| |
|
|
|
|
|
| |
for a token is set, this makes the diagnostic "expanded from stack" work
for this diagnostic. Add a testcase for PR3918.
llvm-svn: 69544
|
| |
|
|
|
|
|
| |
by rejecting invalid poisoned tokens in the token
pasting path.
llvm-svn: 69536
|
| |
|
|
|
|
|
| |
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.
llvm-svn: 69530
|
| |
|
|
| |
llvm-svn: 69485
|
| |
|
|
|
|
|
|
|
|
| |
the first real character of a token. For example, advancing
to byte 3 of foo\
bar
should stop at the b, not the \.
llvm-svn: 69484
|
| |
|
|
| |
llvm-svn: 69483
|
| |
|
|
| |
llvm-svn: 69482
|