Michael J. Spencer
4362a1c987
Fix coding standard mistake from my last commit.
...
That, and keep aKor happy :P.
llvm-svn: 114816
2010-09-27 06:34:47 +00:00
Michael J. Spencer
a0a820fadb
Lexer: Implement GCC's version of pragma message.
...
llvm-svn: 114814
2010-09-27 06:19:02 +00:00
Anders Carlsson
991285e425
Allow the use of C++0x deleted functions as an extension in C++98.
...
llvm-svn: 114762
2010-09-24 21:25:25 +00:00
Michael J. Spencer
09476212de
Revert "CMake: Update to use standard CMake dependency tracking facilities instead"
...
This reverts commit r113631
Conflicts:
CMakeLists.txt
lib/CodeGen/CMakeLists.txt
llvm-svn: 113817
2010-09-13 23:54:41 +00:00
Michael J. Spencer
0881f4a367
CMake: Update to use standard CMake dependency tracking facilities instead
...
of whatever we were using before...
llvm-svn: 113631
2010-09-10 21:13:16 +00:00
Douglas Gregor
c7d6576d54
When we parse a pragma, keep track of how that pragma was originally
...
spelled (#pragma, _Pragma, __pragma). In -E mode, use that information
to add appropriate newlines when translating _Pragma and __pragma into
#pragma, like GCC does. Fixes <rdar://problem/8412013>.
llvm-svn: 113553
2010-09-09 22:45:38 +00:00
Douglas Gregor
b2f0713ddc
Clean up some of the CMake dependencies
...
llvm-svn: 113416
2010-09-08 21:40:53 +00:00
Chris Lattner
f0b0497343
fix 7320: we can't delete a trailing space if it doesn't exist.
...
llvm-svn: 113125
2010-09-05 23:16:09 +00:00
Fariborz Jahanian
9e42a952d7
Use getSpelling to get original text of the
...
c++ operator token. (radar 8328250).
llvm-svn: 112977
2010-09-03 17:33:04 +00:00
Fariborz Jahanian
0389df4a45
Patch to allow alternative representation of c++
...
operators (and, or, etc.) to be used as selectors
to match g++'s behavior.
llvm-svn: 112935
2010-09-03 01:26:16 +00:00
Fariborz Jahanian
39de024e66
Prevent warning when built with assert off.
...
llvm-svn: 112680
2010-08-31 23:54:38 +00:00
Fariborz Jahanian
abaae2b692
Some support for unicode string constants
...
in wide strings. radar 8360841.
llvm-svn: 112672
2010-08-31 23:34:27 +00:00
Sebastian Redl
a93bb5b807
Implement __has_feature(cxx_inline_namespaces)
...
llvm-svn: 112671
2010-08-31 23:28:47 +00:00
Chris Lattner
0f0492e69c
improve isHexaLiteral to work with escaped newlines and trigraphs,
...
patch by Francois Pichet!
llvm-svn: 112602
2010-08-31 16:42:00 +00:00
Chris Lattner
dec7334218
silence a warning
...
llvm-svn: 112549
2010-08-30 23:11:03 +00:00
Alexis Hunt
3b7918625c
Revert my user-defined literal commits - r1124{58,60,67} pending
...
some issues being sorted out.
llvm-svn: 112493
2010-08-30 17:47:05 +00:00
Chris Lattner
5f183aa592
add a fixme.
...
llvm-svn: 112491
2010-08-30 17:11:14 +00:00
Chris Lattner
7a9e9e7d76
use 'features' instead of 'PP->getLangOptions'.
...
llvm-svn: 112490
2010-08-30 17:09:08 +00:00
Douglas Gregor
3cc2648b47
Now that GCC will have #pragma push/pop (in GCC 4.6), allow the
...
#pragma without requiring it to be in the "clang" namespace, from
Louis Gerbarg!
llvm-svn: 112484
2010-08-30 15:15:34 +00:00
Douglas Gregor
759ef23bb8
In Microsoft compatibility mode, don't parse the exponent as part of
...
the pp-number in a hexadecimal floating point literal, from Francois
Pichet! Fixes PR7968.
llvm-svn: 112481
2010-08-30 14:50:47 +00:00
Alexis Hunt
79eb5469e0
Implement C++0x user-defined string literals.
...
The extra data stored on user-defined literal Tokens is stored in extra
allocated memory, which is managed by the PreprocessorLexer because there isn't
a better place to put it that makes sure it gets deallocated, but only after
it's used up. My testing has shown no significant slowdown as a result, but
independent testing would be appreciated.
llvm-svn: 112458
2010-08-29 21:26:48 +00:00
John McCall
49039d4afb
Complain if a __pragma isn't terminated.
...
llvm-svn: 112392
2010-08-29 01:09:54 +00:00
John McCall
89e925d78e
Add support for Microsoft's __pragma in the preprocessor.
...
Patch by Francois Pichet!
llvm-svn: 112391
2010-08-28 22:34:47 +00:00
Douglas Gregor
33551892fa
Tweak wording in an assertion, from dawn@burble.org.
...
llvm-svn: 112182
2010-08-26 14:07:34 +00:00
Douglas Gregor
115837041e
Introduce a preprocessor code-completion hook for contexts where we
...
expect "natural" language and should not provide any completions,
e.g., comments, string literals, #error.
llvm-svn: 112054
2010-08-25 17:04:25 +00:00
Douglas Gregor
ec00a26855
Implement code completion for preprocessor expressions and in macro
...
arguments.
llvm-svn: 111976
2010-08-24 22:20:20 +00:00
Douglas Gregor
127851084d
Implement preprocessor code completion where a macro name is expected,
...
e.g., after #ifdef/#ifndef or #undef, or inside a defined <macroname>
expression in a preprocessor conditional.
llvm-svn: 111954
2010-08-24 20:21:13 +00:00
Douglas Gregor
3a7ad25eb6
Introduce basic code-completion support for preprocessor directives,
...
e.g., after a "#" we'll suggest #if, #ifdef, etc.
llvm-svn: 111943
2010-08-24 19:08:16 +00:00
Eli Friedman
04831926ec
Detabify.
...
llvm-svn: 111768
2010-08-22 01:00:03 +00:00
Chris Lattner
20a2b46ca2
fix PR7943, a corner case with the GNU __VA_ARGS__ comma
...
swallowing extension.
llvm-svn: 111701
2010-08-21 00:27:00 +00:00
Sebastian Redl
d44cd6adba
More PCH -> AST renaming.
...
llvm-svn: 111472
2010-08-18 23:57:06 +00:00
Daniel Dunbar
211a787eaf
CrashRecovery: Add #pragma clang __debug handle_crash, useful when debugging
...
CrashRecovery since it avoids sending a signal which may be intercepted by the
debugger.
llvm-svn: 111449
2010-08-18 23:09:23 +00:00
Chris Lattner
66b67d209e
no need to pass bumppointer allocator into macroinfo::destroy
...
llvm-svn: 111364
2010-08-18 16:08:51 +00:00
Daniel Dunbar
f2cf329ccd
Lex: Add #pragma clang __debug {llvm_fatal_error, llvm_unreachable}, for testing
...
those crash paths.
llvm-svn: 111311
2010-08-17 22:32:48 +00:00
Chris Lattner
c0a585d63c
Implement #pragma push_macro, patch by Francois Pichet!
...
llvm-svn: 111234
2010-08-17 15:55:45 +00:00
Douglas Gregor
02690ba643
Don't emit end-of-file diagnostics like "unterminated conditional" or
...
"unterminated string" when we're performing code completion.
llvm-svn: 110933
2010-08-12 17:04:55 +00:00
Benjamin Kramer
e8394df11b
Random temporary string cleanup.
...
llvm-svn: 110807
2010-08-11 14:47:12 +00:00
Douglas Gregor
028d3e4d0f
Use precompiled preambles for in-process code completion.
...
llvm-svn: 110596
2010-08-09 20:45:32 +00:00
Douglas Gregor
618e64a23b
Revert r110440, the fix for PR4897. Chris claims to have a better way.
...
llvm-svn: 110544
2010-08-08 07:49:23 +00:00
Benjamin Kramer
d05f31d059
Push location through the MacroUndefined PPCallback and use it to print #undefs in -dD mode. (PR7818)
...
llvm-svn: 110523
2010-08-07 22:27:00 +00:00
Douglas Gregor
d26129a98a
Fix the #include search path when reading from stdin, from Jon Simons!
...
Fixes PR4897.
llvm-svn: 110440
2010-08-06 12:06:13 +00:00
Ted Kremenek
d21139a34f
After a lengthy design discussion, add support for "ownership attributes" for malloc/free checking. Patch by Andrew McGregor!
...
llvm-svn: 109939
2010-07-31 01:52:11 +00:00
Daniel Dunbar
51738ba43e
Transcribe clattner email to SVN.
...
llvm-svn: 109727
2010-07-29 02:46:02 +00:00
Daniel Dunbar
e11281077d
Change #pragma crash to segv, instead of abort.
...
llvm-svn: 109725
2010-07-29 02:25:07 +00:00
Daniel Dunbar
b8068c33e2
Preprocessor: Add support for '#pragma clang __debug crash' and '#pragma clang
...
__debug overflow_stack'.
- For testing crash reporting stuff... you'd think I could just use some C++
code but Doug keeps fixing stuff!
llvm-svn: 109587
2010-07-28 15:40:33 +00:00
Sebastian Redl
9891212476
Record macros in dependent PCHs. Also add various info tables to dependent PCHs; tests for this to follow.
...
llvm-svn: 109554
2010-07-27 23:01:28 +00:00
Ted Kremenek
2bd41d1e30
Add PTHLexer::LexEndOfFile() to emit diagnostics at end-of-file similar to those by Lexer::LexEndOfFile().
...
llvm-svn: 109486
2010-07-27 02:59:02 +00:00
Douglas Gregor
3f4bea0646
Introduce basic support for loading a precompiled preamble while
...
reparsing an ASTUnit. When saving a preamble, create a buffer larger
than the actual file we're working with but fill everything from the
end of the preamble to the end of the file with spaces (so the lexer
will quickly skip them). When we load the file, create a buffer of the
same size, filling it with the file and then spaces. Then, instruct
the lexer to start lexing after the preamble, therefore continuing the
parse from the spot where the preamble left off.
It's now possible to perform a simple preamble build + parse (+
reparse) with ASTUnit. However, one has to disable a bunch of checking
in the PCH reader to do so. That part isn't committed; it will likely
be handled with some other kind of flag (e.g., -fno-validate-pch).
As part of this, fix some issues with null termination of the memory
buffers created for the preamble; we were trying to explicitly
NULL-terminate them, even though they were also getting implicitly
NULL terminated, leading to excess warnings about NULL characters in
source files.
llvm-svn: 109445
2010-07-26 21:36:20 +00:00
Dan Gohman
28ade550f4
Fix namespace polution.
...
llvm-svn: 109440
2010-07-26 21:25:24 +00:00
Douglas Gregor
cd8bdd025f
Improve performance during cursor traversal when a region of interest
...
is present.
Rather than using clang_getCursorExtent(), which requires
us to lex the token at the ending position to determine its
length. Then, we'd be comparing [a, b) source ranges that cover the
characters in the range rather than the normal behavior for Clang's
source ranges, which covers the tokens in the range. However, relexing
causes us to read the source file (which may come from a precompiled
header), which is rather unfortunate and affects performance.
In the new scheme, we only use Clang-style source ranges that cover
the tokens in the range. At the entry points where this matters
(clang_annotateTokens, clang_getCursor), we make sure to move source
locations to the start of the token.
Addresses most of <rdar://problem/8049381>.
llvm-svn: 109134
2010-07-22 20:22:31 +00:00