| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 170903
|
|
|
|
|
|
| |
a not-fully-formed macro invocation during code-completion.
llvm-svn: 170833
|
|
|
|
|
|
|
|
| |
the macro invocation is not fully formed.
rdar://11290992
llvm-svn: 170824
|
|
|
|
|
|
| |
which is wrong here.
llvm-svn: 170721
|
|
|
|
| |
llvm-svn: 170686
|
|
|
|
|
|
|
|
| |
make sure they came from the same kind of FileIDs.
Thanks to Abramo Bagnara for providing the test case.
llvm-svn: 170616
|
|
|
|
|
|
| |
single attribute in the future.
llvm-svn: 170500
|
|
|
|
| |
llvm-svn: 170314
|
|
|
|
|
|
| |
a note about where the macro is defined.
llvm-svn: 170228
|
|
|
|
|
|
| |
function-like macro which isn't immediately followed by '('. FreeBSD's stdio.h #defines foo(x) to (foo)(x), apparently.
llvm-svn: 169960
|
|
|
|
|
|
| |
latter is rather a mess to type.
llvm-svn: 169919
|
|
|
|
|
|
|
|
|
|
| |
a file or directory, allowing just a stat call if a file descriptor
is not needed.
Doing just 'stat' is faster than 'open/fstat/close'.
This has the effect of cutting down system time for validating the input files of a PCH.
llvm-svn: 169831
|
|
|
|
|
|
| |
was #import'ed.
llvm-svn: 169761
|
|
|
|
|
|
|
|
|
|
| |
directive as a macro expansion.
This is more of a "macro reference" than a macro expansion but it's close enough
for libclang's purposes. If it causes issues we can revisit and introduce a new
kind of cursor.
llvm-svn: 169666
|
|
|
|
|
|
| |
a MacroInfo object if the identifier was a macro name.
llvm-svn: 169665
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uncovered.
This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.
I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.
llvm-svn: 169237
|
|
|
|
| |
llvm-svn: 169233
|
|
|
|
|
|
|
|
|
| |
PreprocessingRecord and into its own class, PPConditionalDirectiveRecord.
Decoupling allows a client to use the functionality of PPConditionalDirectiveRecord
without needing a PreprocessingRecord.
llvm-svn: 169229
|
|
|
|
|
|
|
|
| |
regions
use the SourceLocation at the start of the respective region, instead of a unique integer.
llvm-svn: 169228
|
|
|
|
|
|
|
|
|
| |
consistent.
Fixes a crash printing diagnostics on the gcc testsuite, and also makes
diagnostic range printing print nicer results for token pastes.
llvm-svn: 169068
|
|
|
|
| |
llvm-svn: 169030
|
|
|
|
|
|
| |
to pravic!
llvm-svn: 169028
|
|
|
|
|
|
|
|
|
|
|
|
| |
import of that module elsewhere, don't try to build the module again:
it won't work, and the experience is quite dreadful. We track this
information somewhat globally, shared among all of the related
CompilerInvocations used to build modules on-the-fly, so that a
particular Clang instance will only try to build a given module once.
Fixes <rdar://problem/12552849>.
llvm-svn: 168961
|
|
|
|
| |
llvm-svn: 168778
|
|
|
|
|
|
|
|
| |
string literal needs cleaning (because it contains line-splicing in the
encoding prefix or in the ud-suffix), do not clean the section between the
double-quotes -- that's the "raw" bit!
llvm-svn: 168776
|
|
|
|
| |
llvm-svn: 168274
|
|
|
|
|
|
|
| |
This makes LexCharConstant() look more like LexStringLiteral(), which doesn't
have this bug. Add tests for eof after \ for several other cases.
llvm-svn: 168269
|
|
|
|
|
|
|
| |
__has_attribute, __has_extension, making them behave more akin to
conventional macros.
llvm-svn: 168268
|
|
|
|
| |
llvm-svn: 168267
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
common LexStringLiteral function. In doing so, some consistency problems have
been ironed out (e.g. where the first token in the string literal was lexed
with macro expansion, but subsequent ones were not) and also an erroneous
diagnostic has been corrected.
LexStringLiteral is complemented by a FinishLexStringLiteral function which
can be used in the situation where the first token of the string literal has
already been lexed.
llvm-svn: 168266
|
|
|
|
| |
llvm-svn: 168265
|
|
|
|
| |
llvm-svn: 168077
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the related comma pasting extension.
In certain cases, we used to get two diagnostics for what is essentially one
extension. This change suppresses the first diagnostic in certain cases
where we know we're going to print the second diagnostic. The
diagnostic is redundant, and it can't be suppressed in the definition
of the macro because it points at the use of the macro, so we want to
avoid printing it if possible.
The implementation works by detecting constructs which look like comma
pasting at the time of the definition of the macro; this information
is then used when the macro is used. (We can't actually detect
whether we're using the comma pasting extension until the macro is
actually used, but we can detecting constructs which will be comma
pasting if the varargs argument is elided.)
<rdar://problem/12292192>
llvm-svn: 167907
|
|
|
|
|
|
| |
line endings. <rdar://problem/12639047>.
llvm-svn: 167900
|
|
|
|
|
|
| |
tokens at all,". This change broke External/Nurbs in LLVM test-suite.
llvm-svn: 167858
|
|
|
|
|
|
| |
FIXME in LexNumericConstant.
llvm-svn: 167818
|
|
|
|
|
|
|
|
|
| |
don't recursively continue lexing.
This avoids a stack overflow with a sequence of many empty #includes.
rdar://11988695
llvm-svn: 167801
|
|
|
|
| |
llvm-svn: 167800
|
|
|
|
| |
llvm-svn: 167690
|
|
|
|
|
|
|
|
|
|
| |
is empty in a variadic macro expansion. This fixes a divergence in support for
the ", ## __VA_ARGS__" GCC extension which differed in behaviour when in strict
C99 mode (note: there is no change in behaviour has been made in the gnu99 mode
that clang uses by default). In addition, there is improved support for the
Microsoft alternative extension ", __VA_ARGS__".
llvm-svn: 167613
|
|
|
|
|
|
|
|
|
| |
string parts.
Instead just use a dummy buffer, we're not going to use the decoded string anyways.
Fixes PR14292.
llvm-svn: 167594
|
|
|
|
| |
llvm-svn: 167593
|
|
|
|
| |
llvm-svn: 167483
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allowing a module map to be placed one level above the '.framework'
directories to specify that all .frameworks within that directory can
be inferred as framework modules. One can also specifically exclude
frameworks known not to work.
This makes explicit (and more restricted) behavior modules have had
"forever", where *any* .framework was assumed to be able to be built
as a module. That's not necessarily true, so we white-list directories
(with exclusions) when those directories have been audited.
llvm-svn: 167482
|
|
|
|
|
|
| |
*Sanitizer to Sanitize* in preparation for later patches.
llvm-svn: 167405
|
|
|
|
|
|
|
|
| |
preserve the macro location of the range end if the filename came from a macro.
Patch by Kim Gräsman!
llvm-svn: 167239
|
|
|
|
| |
llvm-svn: 167059
|
|
|
|
|
|
|
| |
limit highlight to exactly the bad encoding, and highlight every
bad encoding in a string.
llvm-svn: 166900
|
|
|
|
|
|
| |
when computing the size of the precompiled preamble.
llvm-svn: 166659
|
|
|
|
| |
llvm-svn: 166599
|