ef8225444452a1486bd721f3285301fe84643b00 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for rebase to r212749. This also fixes a small issue with arm_neon.h not being generated always. Includes a cherry-pick of: r213450 - fixes mac-specific header issue r213126 - removes a default -Bsymbolic on Android Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7121bdb91b86f6053765bda18dd0a8a118929ace |
|
18-Oct-2013 |
David Majnemer <david.majnemer@gmail.com> |
[-fms-extensions] Permit 'override' in C++98 and 'sealed' as a synonym for 'final' Summary: Some MS headers use these features. Reviewers: rnk, rsmith CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1948 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
89ca1fb13849f6e12dddc1ee562c5cd21ed9dd7a |
|
15-Oct-2013 |
Ted Kremenek <kremenek@apple.com> |
Add has_feature support for reflecting the presence of refined Objective-C ABI mangling for qualified id<...>. Fixes <rdar://problem/14799110>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
44868f5b6a0980744de08e9fa45193b5a29ff990 |
|
28-Sep-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Mark lambda init-captures as complete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
629bc52604e62f016474314077193ed30f8782f9 |
|
27-Sep-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Mark variable template implementation as complete. Nearly all of the credit here goes to Larisse Voufo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d2f9308220af22bfc1bcd3bc2cad118dbd8be013 |
|
19-Sep-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Make Preprocessor::Lex non-recursive. Before this patch, Lex() would recurse whenever the current lexer changed (e.g. upon entry into a macro). This patch turns the recursion into a loop: the various lex routines now don't return a token when the current lexer changes, and at the top level Preprocessor::Lex() now loops until it finds a token. Normally, the recursion wouldn't end up being very deep, but the recursion depth can explode in edge cases like a bunch of consecutive macros which expand to nothing (like in the testcase test/Preprocessor/macro_expand_empty.c in this patch). <rdar://problem/14569770> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
585c84c5afd91f57b84b0236aa28620438cfe636 |
|
16-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a define for the ObjFW runtime ABI version. This removes __has_feature(objc_msg_lookup_stret), as it is not required anymore after this patch. Patch by Jonathan Schleifer! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
fa7d53fa31516920d3425f5b2095d3fefb38ede2 |
|
14-Sep-2013 |
Ed Schouten <ed@80386.nl> |
Make __has_extension(c_thread_local) work. Unlike C++11's "thread_local" keyword, C11's "_Thread_local" is in the reserved namespace, meaning we provide it unconditionally; it is marked as KEYALL in TokenKinds.def. This means that like all the other C11 keywords, we can expose its presence through __has_extension(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
2eeed711beec49dfad5d3a3f16fdfca4b2f3acf0 |
|
08-Aug-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
DataFlowSanitizer; Clang changes. DataFlowSanitizer is a generalised dynamic data flow analysis. Unlike other Sanitizer tools, this tool is not designed to detect a specific class of bugs on its own. Instead, it provides a generic dynamic data flow analysis framework to be used by clients to help detect application-specific issues within their own code. Differential Revision: http://llvm-reviews.chandlerc.com/D966 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
88c4b5efc604b982ca9083548d568b02b1abd2ab |
|
29-Jul-2013 |
David Blaikie <dblaikie@gmail.com> |
Support for Thread Safety Analysis in C Patch by Ethan Jackson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
40ec4d26b7622eb07ad8d5f02da0dd43a1dc74b5 |
|
27-Jul-2013 |
Bob Wilson <bob.wilson@apple.com> |
Reduce stack frame size by avoiding a large token vector on an error path. Beginning with svn r186971, we noticed an internal test started to fail when using clang built with LTO. After much investigation, it turns out that there are no blatant bugs here, we are just running out of stack space and crashing. Preprocessor::ReadFunctionLikeMacroArgs already has one vector of 64 Tokens, and r186971 added another. When built with LTO, that function is inlined into Preprocessor::HandleMacroExpandedIdentifier, which for our internal test is invoked in a deep recursive cycle. I'm leaving the original 64 Token vector alone on the assumption that it is important for performance, but the new FixedArgTokens vector is only used on an error path, so it should be OK if it requires additional heap storage. It would be even better if we could avoid the deep recursion, but I think this change is a good thing to do regardless. <rdar://problem/14540345> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
11311eaf6093a5374f94047df354d4c62d68c611 |
|
26-Jul-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Fix GNU ObjC ABI for a message returning a struct. This allows the ObjFW runtime to correctly implement message forwarding for messages which return a struct. Patch by Jonathan Schleifer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3c3a522712ef11a5e5836e2df6466fbd446bb2ea |
|
24-Jul-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Rename feature test for lambda init-captures from cxx_generalized_capture to cxx_init_capture. "generalized" is neither descriptive nor future-proof. No compatibility problems expected, since we've never advertised having this feature. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a4fb3390853356524416bc28d6044e7a41c87863 |
|
24-Jul-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Update documentation to match current C++1y feature set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5940bf33061844c9a61d4d5c1230df9cf9e90342 |
|
23-Jul-2013 |
Richard Trieu <rtrieu@google.com> |
Add new diagnostic messages when too many arguments are presented to a function-like macro. Clang will attempt to correct the arguments by detecting braced initializer lists: 1) If possible, suggest parentheses around arguments containing braced lists which will give the proper number of arguments. 2) If a braced list is detected at the start of a macro argument, it cannot be corrected by parentheses. Instead, just point out the location of these braced lists. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
899022b14bc3bde19a949fb042711864ca3a629b |
|
09-Jul-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Generalize hack allowing 'const' in __has_attribute (etc) to allow any token with identifier info. This covers most identifier-like entities (other than the ISO646 keywords). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
11be06464a338b7c6e007898a7709498dc456db2 |
|
26-Jun-2013 |
Reid Kleckner <reid@kleckner.net> |
Match MSVC's handling of commas during macro argument expansion This allows clang to parse the type_traits header in Visual Studio 2012, which is included widely in practice. This is a rework of r163022 by João Matos. The original patch broke preprocessing of gtest headers, which this patch addresses. Patch by Will Wilson! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
bc3f628815b3841dc99109e7f67f9afa7793bc94 |
|
20-Jun-2013 |
Lawrence Crowl <crowl@google.com> |
This patch adds new private headers to the module map. Private headers may be included from within the module, but not from outside the module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f45c2992a3aac7591310cd824b7c7319afd432fc |
|
12-May-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++1y: provide full 'auto' return type deduction for lambda expressions. This completes the implementation of N3638. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7f0ffb3a9f4ce7428fd4f6eb3c3274c867c134f8 |
|
07-May-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++1y: Update __cplusplus to temporary value 201305L to allow detection of provisional C++1y support. Add __has_feature and __has_extension checks for C++1y features (based on the provisional names from the C++ features study group), and update documentation to match. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
dd08a0c178329ec16cb9e494e6880f3991708b93 |
|
04-May-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Preprocessor] For the MacroExpands preprocessor callback, also pass the MacroArgs object that provides information about the argument tokens for a function macro. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e87c5bd593b038baec7cfa6075f26cd0ac256042 |
|
02-May-2013 |
Douglas Gregor <dgregor@apple.com> |
Only evaluate __has_feature(c_thread_local) and __has_feature(cxx_thread_local) true when the target supports thread-local storage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e6e68b53778bb5a15c10a73a5bf18d8ab73f75e3 |
|
19-Apr-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++11 support is now feature-complete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
35803282ef0282467fe1c09aa8284d734030dc3f |
|
27-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[modules] Re-enable the "ambiguous expansion of macro" warning. Also update "test/Modules/macros.c" to test modified semantics: -When there is an ambiguous macro, expand using the latest introduced version, not the first one. -#undefs in submodules cause the macro to not be exported by that submodule, it doesn't cause undefining of macros in the translation unit that imported that submodule. This reduces macro namespace interference across modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
c56fff7fd231aebf4b152f60f8f11ef91835c48a |
|
26-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Preprocessor/Modules] Separate the macro directives kinds into their own MacroDirective's subclasses. For each macro directive (define, undefine, visibility) have a separate object that gets chained to the macro directive history. This has several benefits: -No need to mutate a MacroDirective when there is a undefine/visibility directive. Stuff like PPMutationListener become unnecessary. -No need to keep extra source locations for the undef/visibility locations for the define directive object (which is the majority of the directives) -Much easier to hide/unhide a section in the macro directive history. -Easier to track the effects of the directives across different submodules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9317ab94bb68122ba6fc728eb73c1308fb913cd1 |
|
22-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Modules] De/Serialize MacroInfos separately than MacroDirectives. -Serialize the macro directives history into its own section -Get rid of the macro updates section -When de/serializing an identifier from a module, associate only one macro per submodule that defined+exported it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
c515978bd3a703aa733f846a0094ffa84d149074 |
|
24-Feb-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[preprocessor] Use MacroDirective in the preprocessor callbacks to make available the full information about the macro (e.g if it was imported and where). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
fdf5706440543c744cd9faf55235a757a7278daa |
|
22-Feb-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Fix assertion hit when code-completing inside a function macro with more arguments than it should accept. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9818a1d443e97677dd3422305de9cc2b1fb2a8c1 |
|
20-Feb-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[preprocessor] Split the MacroInfo class into two separate concepts, MacroInfo class for the data specific to a macro definition (e.g. what the tokens are), and MacroDirective class which encapsulates the changes to the "macro namespace" (e.g. the location where the macro name became active, the location where it was undefined, etc.) (A MacroDirective always points to a MacroInfo object.) Usually a macro definition (MacroInfo) is where a macro name becomes active (MacroDirective) but splitting the concepts allows us to better model the effect of modules to the macro namespace (also as a bonus it allows better modeling of push_macro/pop_macro #pragmas). Modules can have their own macro history, separate from the local (current translation unit) macro history; MacroDirectives will be used to model the macro history (changes to macro namespace). For example, if "@import A;" imports macro FOO, there will be a new local MacroDirective created to indicate that "FOO" became active at the import location. Module "A" itself will contain another MacroDirective in its macro history (at the point of the definition of FOO) and both MacroDirectives will point to the same MacroInfo object. Introducing the separation of macro concepts is the first part towards better modeling of module macros. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
40f56e5b677761c8258324222d62fce3e4f6bca4 |
|
31-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Reinstate r173952, this time limiting it to exactly the form #define X X for which there is no point warning, ever. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1a1c82e1530e834cceab58fa51ff5e356e260641 |
|
30-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Revert "[preprocessor] Don't warn about "disabled expansion of recursive macro"" This reverts commit r173952 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
8d3f6133da9abb58cf05d55f7b8d86dd00257832 |
|
30-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[preprocessor] Don't warn about "disabled expansion of recursive macro" for "#define X X". This is a pattern that, for example, stdbool.h uses. rdar://12435773 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0c06cbc51c581ea31dac14134bd184e491fe5caf |
|
23-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Temporarily disable the "ambiguous macro" warning that is currently bogus with a PCH that redefined a macro without undef'ing it first. Proper reconstruction of the macro info history from modules will properly fix this in subsequent commits. rdar://13016031 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
dc1088f6201c3fb8f3f97f54c343f7d163fbec06 |
|
19-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Modules] Revert r172843, it caused a module to fail building. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f953276b6165dc7e8f4679cce4d0e7c649cd4232 |
|
18-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Modules] Re-apply r172620 and r172629, now with 100% less infinite loops! Makes sure that a deserialized macro is only added to the preprocessor macro definitions only once. Unfortunately I couldn't get a reduced test case. rdar://13016031 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4f45bc099f2665bc6e4bcbb169aa452390dbf3fe |
|
18-Jan-2013 |
Will Dietz <wdietz2@illinois.edu> |
[ubsan] Add support for -fsanitize-blacklist git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d3b036efdf0bf4ec216c701183a4b990cd041cd6 |
|
18-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Revert Clang r172620 and r172629, which caused a hang when building complicated modules (<rdar://problem/13038265>). Unfortunately, this un-fixes <rdar://problem/13016031>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
31672b1745195d709b641f1c0f44e203742fa73b |
|
16-Jan-2013 |
Aaron Ballman <aaron@aaronballman.com> |
No longer crashing with an assert when __has_include or __has_include_next is used outside of a preprocessor directive. This fixes PR14837. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7f69b1ab4f63ded511dddd7fb7e1cd8860757016 |
|
16-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Modules] Change how macro [re]definitions are de/serialized. Previously we would serialize the macro redefinitions as a list, part of the identifier, and try to chain them together across modules individually without having the info that they were already chained at definition time. Change this by serializing the macro redefinition chain and then try to synthesize the chain parts across modules. This allows us to correctly pinpoint when 2 different definitions are ambiguous because they came from unrelated modules. Fixes bogus "ambiguous expansion of macro" warning when a macro in a PCH is redefined without undef'ing it first. rdar://13016031 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
6b716c58565ebd325f3fb989cfa92ed0934db8c5 |
|
15-Jan-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Typo correction; no functional change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b3958476b21702a15f64f09d2862506d03dffe7b |
|
14-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Constify argument of Preprocessor::getMacroInfoHistory and propagate to callers, removing unneeded const_cast git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
cfa88f893915ceb8ae4ce2f17c46c24a4d67502f |
|
12-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Remove useless 'llvm::' qualifier from names like StringRef and others that are brought into 'clang' namespace by clang/Basic/LLVM.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a0f2d02d166880e5d826074b6c2ecbf64f8ca70d |
|
09-Jan-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Make __has_include a bit more resilient in the presence of macros. <rdar://problem/12748859>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e4057c203c71873d93aead38d626b3cd29584d8a |
|
04-Jan-2013 |
Ted Kremenek <kremenek@apple.com> |
Add __has_feature support to detect if clang supports the explicit "atomic" keyword for ObjC properties. Fixes <rdar://problem/12953378>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
80ad52f327b532bded5c5b0ee38779d841c6cd35 |
|
02-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
s/CPlusPlus0x/CPlusPlus11/g git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
bb06b5000b9639a92e92c368ff3e5e5f8bb1e724 |
|
22-Dec-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Fix crash when code-completing a macro invocation that reached EOF and did not expand the argument into the source context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f1e5b155088203f88a8172aa61c1d84185966bf0 |
|
21-Dec-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Follow-up to r170824, provide the correct number of arguments for a not-fully-formed macro invocation during code-completion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
cd0fd18909e3b89ed6f2cc1118809003db64e67a |
|
21-Dec-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Make sure we can code-complete inside a macro argument even though the macro invocation is not fully formed. rdar://11290992 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5c70ef4ae43dbfd501bedb8e8952fc3881527110 |
|
20-Dec-2012 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Add __has_feature(memory_sanitizer). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
728e2127e858611750d560ee7692c322a8570faa |
|
17-Dec-2012 |
Dmitry Vyukov <dvyukov@google.com> |
tsan: add __has_feature(thread_sanitizer) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0ee8de7fe9c1fb74574c62b9d59ffe46a94435f4 |
|
14-Dec-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[preprocessor] For errors at a function macro invocation, also include a note about where the macro is defined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
55fc873017f10f6f566b182b70f6fc22aefa3464 |
|
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort all of Clang's files under 'lib', and fix up the broken headers 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
037dbda82102473181de5cfbecdb05cb648762ad |
|
28-Nov-2012 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Remove obsolete comment missed by r162937 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
6d534d45a598e2ee1c24e5b286f8fab4ad89fb56 |
|
17-Nov-2012 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Clean up code according to coding standards git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3f03b586351779be6947466f530f22c491b1b70f |
|
17-Nov-2012 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Prevent premature macro expansion in __has_builtin, __has_feature, __has_attribute, __has_extension, making them behave more akin to conventional macros. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
97f8461a2c553f68a258612d2322e4281c3f0915 |
|
17-Nov-2012 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Made the "expected string literal" diagnostic more expressive git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
02a176871d91bba3004e4f94b2d4d588ae4b2122 |
|
17-Nov-2012 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Refactored duplicate string literal lexing code within Preprocessor, into a 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b9971bada4eeae74883b61ba96fc6d983b6b0e7f |
|
17-Nov-2012 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Fix handling of invalid uses of the __has_warning builtin macro git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4fa4b480270c14dfdcd0dfd4f76938e973082e3b |
|
14-Nov-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Suppress elided variadic macro argument extension diagnostic for macros using 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> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ca1b62a33cacee20d3bd756210d3211dd663209e |
|
05-Nov-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Rename LangOptions members for address sanitizer and thread sanitizer from *Sanitizer to Sanitize* in preparation for later patches. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
97bc3d54a95153945d14b1ee812837160d45ed90 |
|
22-Oct-2012 |
Richard Trieu <rtrieu@google.com> |
Fix for PR13334. This prevents crashes that result from badly formed expressions involving __has_include git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
54c8a40ed658676b1f3f983728feae488c501477 |
|
12-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Track which particular submodule #undef's a macro, so that the actual #undef only occurs if that submodule is imported. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e8219a655128b98d0573658a139de5d848451fda |
|
11-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Diagnose the expansion of ambiguous macro definitions. This can happen only with modules, when two disjoint modules #define the same identifier to different token sequences. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3ab50fe3fc8311fb68c4f5eb97e9bb3d0041bf1a |
|
11-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce a simple "hint" scheme to eliminate the quadratic behavior associated with deserializing macro history for an identifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7097be90d3549c30438b7a94b35577003d0a434f |
|
11-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove an unused bit from the serialized IdentifierInfo git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
6c6c54a59a6e7dbe63ff6a9bbab76f6e0c7c8462 |
|
11-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Deserialize macro history when we deserialize an identifier that has macro history. When deserializing macro history, we arrange history such that the macros that have definitions (that haven't been #undef'd) and are visible come at the beginning of the list, which is what the preprocessor and other clients of Preprocessor::getMacroInfo() expect. If additional macro definitions become visible later, they'll be moved toward the front of the list. Note that it's possible to have ambiguities, but we don't diagnose them yet. There is a partially-implemented design decision here that, if a particular identifier has been defined or #undef'd within the translation unit, that definition (or #undef) hides any macro definitions that come from imported modules. There's still a little work to do to ensure that the right #undef'ing happens. Additionally, we'll need to scope the update records for #undefs, so they only kick in when the submodule containing that update record becomes visible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
93dec51750411678bb9c5bc1b27b259f5f5a23bd |
|
26-Sep-2012 |
Nico Weber <nicolasweber@gmx.de> |
Revert r163022, it caused PR13924. Add a test for PR13924. Do not revert the test added in r163022, it surprisingly still passes even after reverting the code changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4d7e0ced7f16a04aabe2d8d91cbbb52fb1162810 |
|
25-Sep-2012 |
Alexander Kornienko <alexfh@google.com> |
Macro history (de-)serialization. Deserialization currently reads only the latest macro definition. Needs more work. Summary: Passes all tests (+ the new one with code completion), but needs a thorough review in part related to modules. Reviewers: doug.gregor Reviewed By: alexfh CC: cfe-commits, rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D41 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b09de5177ee8101818a59dcd0038c75b190a2509 |
|
25-Sep-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce builtin macros to determine whether we're building a specific module (__building_module(modulename)) and to get the name of the current module as an identifier (__MODULE__). Used to help headers behave differently when they're being included as part of building a module. Oh, the irony. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
374b3837d676133fcc1eb70a25c8baf8ec4a5c4a |
|
24-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
StringRef'ize Preprocessor::CreateString(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
33d054b0932b1ed5d2b30e41946f6aec5030c12e |
|
24-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Replace raw call to snprintf() by llvm streams. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3e1ec72e9ef097562774e43bd2847aac57b73d3d |
|
31-Aug-2012 |
Joao Matos <ripzonetriton@gmail.com> |
Normalize line endings of r163022. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
181cd5bdebf0b88e8194c3f58da60f7f5b918b33 |
|
31-Aug-2012 |
Joao Matos <ripzonetriton@gmail.com> |
Emulate MSVC's preprocessor macro argument separator behavior by not considering commas from nested macro expansions as argument separators. Fixes parsing of VS 2012 headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d295970adc93ed4035d18df23673c2a72d124cc8 |
|
30-Aug-2012 |
Douglas Gregor <dgregor@apple.com> |
Extend the "__is_pod" hack, which demotes various type trait keywords (__is_pod, __is_signed, etc.) to normal identifiers if they are encountered in certain places in the grammar where we know that prior versions of libstdc++ or libc++ use them, to still allow the use of these keywords as type traits. Fixes <rdar://problem/9836262> and PR10184. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
c30981a563a8947cb26b1e308d122fa2ef90fceb |
|
30-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Make preprocessor act in a GCC-compatible fashion when a macro is redefined within its own argument list. The original definition is used for the immediate expansion, but the new definition is used for any subsequent occurences within the argument list or after the expansion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e40c4238a572bf8241a04e0005f70550cbfc1cfb |
|
29-Aug-2012 |
Alexander Kornienko <alexfh@google.com> |
Fixed a problem with #pragma push_macro/pop_macro implementation. Summary: The problem was with the following sequence: #pragma push_macro("long") #undef long #pragma pop_macro("long") in case when "long" didn't represent a macro. Fixed crash and removed code duplication for #undef/pop_macro case. Added regression tests. Reviewers: doug.gregor, klimek Reviewed By: doug.gregor CC: cfe-commits, chapuni Differential Revision: http://llvm-reviews.chandlerc.com/D31 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
8a64bb58c3b24d7d97895e435bbc0965c99bd3be |
|
29-Aug-2012 |
Alexander Kornienko <alexfh@google.com> |
Keep history of macro definitions and #undefs Summary: Summary: Keep history of macro definitions and #undefs with corresponding source locations, so that we can later find out all macros active in a specified source location. We don't save the history in PCH (no need currently). Memory overhead is about sizeof(void*)*3*<number of macro definitions and #undefs>+<in-memory size of all #undef'd macros> I've run a test on a file composed of 109 .h files from boost 1.49 on x86-64 linux. Stats before this patch: *** Preprocessor Stats: 73222 directives found: 19171 #define. 4345 #undef. #include/#include_next/#import: 5233 source files entered. 27 max include stack depth 19210 #if/#ifndef/#ifdef. 2384 #else/#elif. 6891 #endif. 408 #pragma. 14466 #if/#ifndef#ifdef regions skipped 80023/451669/1270 obj/fn/builtin macros expanded, 85724 on the fast path. 127145 token paste (##) operations performed, 11008 on the fast path. Preprocessor Memory: 5874615B total BumpPtr: 4399104 Macro Expanded Tokens: 417768 Predefines Buffer: 8135 Macros: 1048576 #pragma push_macro Info: 0 Poison Reasons: 1024 Comment Handlers: 8 Stats with this patch: ... Preprocessor Memory: 7541687B total BumpPtr: 6066176 Macro Expanded Tokens: 417768 Predefines Buffer: 8135 Macros: 1048576 #pragma push_macro Info: 0 Poison Reasons: 1024 Comment Handlers: 8 In my test increase in memory usage is about 1.7Mb, which is ~28% of initial preprocessor's memory usage and about 0.8% of clang's total VMM allocation. As for CPU overhead, it should only be noticeable when iterating over all macros, and should mostly consist of couple extra dereferences and one comparison per macro + skipping of #undef'd macros. It's less trivial to measure, though, as the preprocessor consumes a very small fraction of compilation time. Reviewers: doug.gregor, klimek, rsmith, djasper Reviewed By: doug.gregor CC: cfe-commits, chandlerc Differential Revision: http://llvm-reviews.chandlerc.com/D28 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0a7dd788dbef975f35f273c7ab913f480f7edd60 |
|
21-Aug-2012 |
John McCall <rjmccall@apple.com> |
Screw around with ObjCRuntime some more, changing the diagnostics for bad deployment targets and adding a few more predicates. Includes a patch by Jonathan Schleifer to enable ARC for ObjFW. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
10caec2600089449b58c065d56fc449d095b4536 |
|
13-Aug-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
c: small refactoring of checking for __attribute__(const)) per Richard's comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a7846852ba8b2b53664a674a41d116e0419d8768 |
|
13-Aug-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
c: make __has_attribute(const) work for const function attribute. // rdar://10253857 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b43f63822e051f2d28d8e083b688b2f113d6ba9c |
|
24-Jul-2012 |
Jordan Rose <jordan_rose@apple.com> |
Add __has_feature(attribute_availability_with_message). This tests for the ability to include a "message" field in availability attributes, like so: extern void ATSFontGetName(const char *oName) __attribute__((availability(macosx,introduced=8.0,deprecated=9.0, message="use CTFontCopyFullName"))); This was actually supported in Clang 3.1, but we got a request for a __has_feature so that header files can use this more safely. It's unfortunate that the 3.1 release doesn't include this, however. <rdar://problem/11886458> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
bed28ac1d1463adca3ecf24fca5c30646fa9dbb2 |
|
23-Jul-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo (the the => the) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
2dc509d89379c7921ef0dd95d88cd1fc8b0526d1 |
|
27-Jun-2012 |
Daniel Jasper <djasper@google.com> |
Introduce __has_feature(attribute_unused_on_fields) to determine whether the current version of clang understands __attribute__((unused)) on fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9f728cd37476c6588b06d241fa778d2df6e277da |
|
23-Jun-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Minor improvements to some C99 variadic-macro-related diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0b92fcb1353d2d8b31b6c485e6caa14568aca43b |
|
20-Jun-2012 |
John McCall <rjmccall@apple.com> |
Introduce ObjCRuntime::hasWeakClassImport() and use it in the appropriate places. I've turned this off for the GNU runtimes --- I don't know if they support weak class import, but it's easy enough for them to opt in. Also tweak a comment per review by Jordan. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
260611a32535c851237926bfcf78869b13c07d5b |
|
20-Jun-2012 |
John McCall <rjmccall@apple.com> |
Restructure how the driver communicates information about the target Objective-C runtime down to the frontend: break this down into a single target runtime kind and version, and compute all the relevant information from that. This makes it relatively painless to add support for new runtimes to the compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z, available at the driver level as a better and more general alternative to -fgnu-runtime and -fnext-runtime. This new concept of an Objective-C runtime also encompasses what we were previously separating out as the "Objective-C ABI", so fragile vs. non-fragile runtimes are now really modelled as different kinds of runtime, paving the way for better overall differentiation. As a sort of special case, continue to accept the -cc1 flag -fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak. I won't go so far as to say "no functionality change", even ignoring the new driver flag, but subtle changes in driver semantics are almost certainly not intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
8e083e71d48f7f4d6ef40c00531c2e14df745486 |
|
20-Jun-2012 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Reapply r158700 and fixup patches, minus one hunk that slipped through and caused a crash in an obscure case. On the plus side, it caused me to catch another bug by inspection. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3532936f4f50c15fcec4d00f4cbb81a7a9dd9b7e |
|
19-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r158700 and dependent patches r158716, r158717, and r158731. The original r158700 caused crashes in the gcc test suite, g++.abi/vtable3a.C among others. It also caused failures in the libc++ test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
bfcb037a3479de4a453a8275c64ae441c22d43f9 |
|
19-Jun-2012 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Improve the specification of spellings in Attr.td. Note that this is mostly a structural patch that handles the change from the old spelling style to the new one. One consequence of this is that all AT_foo_bar enum values have changed to not be based off of the first spelling, but rather off of the class name, so they are now AT_FooBar and the like (a straw poll on IRC showed support for this). Apologies for code churn. Most attributes have GNU spellings as a temporary solution until everything else is sorted out (such as a Keyword spelling, which I intend to add if someone else doesn't beat me to it). This is definitely a WIP. I've also killed BaseCheckAttr since it was unused, and I had to go through every attribute anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
66c44e700fb3f244b2c443bfbd6a05b5f1843ec0 |
|
10-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[preprocessor] Make sure that MacroExpands callbacks are always in source order. Fixes assertion hit in the preprocessing record. rdar://11426523 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
eb382ec1507cf2c8c12d7443d0b67c076223aec6 |
|
19-Apr-2012 |
Patrick Beard <pcbeard@mac.com> |
Implements boxed expressions for Objective-C. <rdar://problem/10194391> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
316551f079a182d15c0e9b930c361428c968b5ee |
|
10-Apr-2012 |
Douglas Gregor <dgregor@apple.com> |
Add a query macro for C++11 N3276, decltype does not require complete return types, from Michel Morin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7b156ddae822a546aa9e8b23d683ac76da8e8ac8 |
|
04-Apr-2012 |
Douglas Gregor <dgregor@apple.com> |
Add feature check "cxx_local_type_template_args" describing support for templates with local template arguments, from Michel Morin! Fixes PR12337. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d |
|
11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
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
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9c1dda7d7b6336506764ce1b03baf4c03ed9ff92 |
|
09-Mar-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
User-defined literals are done. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ebcb57a8d298862c65043e88b2429591ab3c58d3 |
|
06-Mar-2012 |
Ted Kremenek <kremenek@apple.com> |
Add clang support for new Objective-C literal syntax for NSDictionary, NSArray, NSNumber, and boolean literals. This includes both Sema and Codegen support. Included is also support for new Objective-C container subscripting. My apologies for the large patch. It was very difficult to break apart. The patch introduces changes to the driver as well to cause clang to link in additional runtime support when needed to support the new language features. Docs are forthcoming to document the implementation and behavior of these features. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
99831e4677a7e2e051af636221694d60ba31fcdb |
|
06-Mar-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
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
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ec92bc78979aae6ec436fe51d082f7467e6f96c0 |
|
04-Mar-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add a pile of tests for unrestricted unions, and advertise support for them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
8a5e7fdd2c7d3f46685396e13ed76798f4573c02 |
|
01-Mar-2012 |
Jean-Daniel Dupas <devlists@shadowlab.org> |
Implement double underscore names support in __has_attribute git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d1dc3aa25797301788f1c4f30f769b1d9e1fb22a |
|
25-Feb-2012 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Initializer lists are now supported. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5297d71e8c85f9b04dc31c690e91c6a2f7eddb90 |
|
25-Feb-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Accept __has_feature(__feature__) as a synonym for __has_feature(feature) (and likewise for __has_extension). Patch by Jonathan Sauer! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4ca8ac2e61c37ddadf37024af86f3e1019af8532 |
|
24-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Implement a new type trait __is_trivially_constructible(T, Args...) that provides the behavior of the C++11 library trait std::is_trivially_constructible<T, Args...>, which can't be implemented purely as a library. Since __is_trivially_constructible can have zero or more arguments, I needed to add Yet Another Type Trait Expression Class, this one handling arbitrary arguments. The next step will be to migrate UnaryTypeTrait and BinaryTypeTrait over to this new, more general TypeTrait class. Fixes the Clang side of <rdar://problem/10895483> / PR12038. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
25d0a0f67d9e949ffbfc57bf487012f5cbfd886e |
|
23-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Provide the __is_trivially_assignable type trait, which provides compiler support for the std::is_trivially_assignable library type trait. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7c07e964d72a287aa3d5714731e202c3ffa17007 |
|
23-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Clang now supports lambda expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b5216aaf803609d25eb8514266dd8531812b4877 |
|
14-Feb-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Advertize support for constexpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f7ccbad5d9949e7ddd1cbef43d482553b811e026 |
|
05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import SmallString<> into clang namespace (I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f83a615ad0004fc4cca3e3c1ea2234a685487304 |
|
02-Feb-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
objc2: add __has_feature(objc_default_synthesize_properties). // rdar://10770497 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
2831092e8063c01aa307bc62ff5e9eb8db2ceedc |
|
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
fix a crash on: __has_builtin in an empty file, as we were overwriting the EOF token. Overwriting an arbitrary token never seems like a good idea in the error case. This fixes a bug reported on the GCC list :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5d5051f3e79bf754134ccdf7a1dc7778cd80c73e |
|
24-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Only mark an IdentifierInfo as having changed since deserialization when it actually has changed (and not, e.g., when we've simply attached a deserialized macro definition). Good for ~1.5% reduction in module file size, mostly in the identifier table. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7a7ee3033e44b45630981355460ef89efa0bdcc4 |
|
16-Jan-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Some improvements to the handling of C11 atomic types: - Add atomic-to/from-nonatomic cast types - Emit atomic operations for arithmetic on atomic types - Emit non-atomic stores for initialisation of atomic types, but atomic stores and loads for every other store / load - Add a __atomic_init() intrinsic which does a non-atomic store to an _Atomic() type. This is needed for the corresponding C11 stdatomic.h function. - Enables the relevant __has_feature() checks. The feature isn't 100% complete yet, but it's done enough that we want people testing it. Still to do: - Make the arithmetic operations on atomic types (e.g. Atomic(int) foo = 1; foo++;) use the correct LLVM intrinsic if one exists, not a loop with a cmpxchg. - Add a signal fence builtin - Properly set the fenv state in atomic operations on floating point values - Correctly handle things like _Atomic(_Complex double) which are too large for an atomic cmpxchg on some platforms (this requires working out what 'correctly' means in this context) - Fix the many remaining corner cases git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
bd507c5ef3cfe58aa2c0eca901fcd53b45c673a1 |
|
04-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Add __has_feature(modules) to indicate when modules are available (in any language variant), and restrict __has_feature(objc_modules) to mean that we also have the Objective-C @import syntax. I anticipate __has_feature(cxx_modules) and/or __has_feature(c_modules) for when we nail down the module syntax for C/C++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7fde6518934846808e878cee8798166ae65edcd4 |
|
03-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Add __has_feature(objc_modules) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1e8a0678df724a28fe47e0034246f2604056a278 |
|
02-Jan-2012 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Added a missing case for -Wdisabled-macro-expansion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ffbe9b9c64ab2e94b9d48ec56e511f75826fc80a |
|
23-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small. Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to keep this around for compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1770e0dadcab966990cca4d7516253c886fd907c |
|
22-Dec-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
remove unneeded config.h includes git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
373cb7832090dd5a380be73fdff79881721eed00 |
|
17-Dec-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Fix bug where we failed to update an identifier for a single token macro expansion. rdar://10588825 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5e9392ba18f5925e26cc5714d1412eda0d219826 |
|
03-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for the __is_final type trait, to determine whether a class is marked 'final', from Alberto Ganesh Barbati! Fixes PR11462. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b61968857fd2c6579b4dcd7bad65736e89d21185 |
|
22-Nov-2011 |
Kostya Serebryany <kcc@google.com> |
implement __has_feature(address_sanitizer); also use LangOpts.AddressSanitizer instead of CodeGenOpts.AddressSanitizer git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
172b221147ab56e60968d3f7ffdb42256622fa4c |
|
01-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Add __has_feature(cxx_raw_string_literals) and __has_feature(cxx_unicode_literals), from Michel Morin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f695a6952f111e79c685301c292755908473f297 |
|
01-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Add __has_feature(cxx_defaulted_functions) for querying "defaulted functions", from Michel Morin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
eee242ff426bf79149f221798966e58688383c1e |
|
27-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Make the loading of information attached to an IdentifierInfo from an AST file more lazy, so that we don't eagerly load that information for all known identifiers each time a new AST file is loaded. The eager reloading made some sense in the context of precompiled headers, since very few identifiers were defined before PCH load time. With modules, however, a huge amount of code can get parsed before we see an @import, so laziness becomes important here. The approach taken to make this information lazy is fairly simple: when we load a new AST file, we mark all of the existing identifiers as being out-of-date. Whenever we want to access information that may come from an AST (e.g., whether the identifier has a macro definition, or what top-level declarations have that name), we check the out-of-date bit and, if it's set, ask the AST reader to update the IdentifierInfo from the AST files. The update is a merge, and we now take care to merge declarations before/after imports with declarations from multiple imports. The results of this optimization are fairly dramatic. On a small application that brings in 14 non-trivial modules, this takes modules from being > 3x slower than a "perfect" PCH file down to 30% slower for a full rebuild. A partial rebuild (where the PCH file or modules can be re-used) is down to 7% slower. Making the PCH file just a little imperfect (e.g., adding two smallish modules used by a bunch of .m files that aren't in the PCH file) tips the scales in favor of the modules approach, with 24% faster partial rebuilds. This is just a first step; the lazy scheme could possibly be improved by adding versioning, so we don't search into modules we already searched. Moreover, we'll need similar lazy schemes for all of the other lookup data structures, such as DeclContexts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
eb2ac8b349e181bdc71bfd64980c019be3180d76 |
|
18-Oct-2011 |
John McCall <rjmccall@apple.com> |
Add a __has_feature check for arc_cf_code_audited. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
661a99690bc133bbaa029da925481d4a860dec90 |
|
15-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
-Wc++98-compat warnings for the lexer. This also adds a -Wc++98-compat-pedantic for warning on constructs which would be diagnosed by -std=c++98 -pedantic (that is, it warns even on C++11 features which we enable by default, with no warning, in C++98 mode). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
fd5f6866a7574f12ecac5cceb7359ff253f83145 |
|
15-Oct-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Add c_alignas and cxx_alignas features git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d768150ef57f617c8d9fef48f3c92e8f21698024 |
|
12-Oct-2011 |
Ted Kremenek <kremenek@apple.com> |
Implement built-in macro '__has_warning', which allows one to query if a warning flag is valid. Fixes <rdar://problem/10263428>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a08529cc3f00e0b47a3c028823634129ac46847b |
|
03-Oct-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed exapnsion range for # and ##. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d6471f7c1921c7802804ce3ff6fe9768310f72b9 |
|
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename Diagnostic to DiagnosticsEngine as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9fe8c74a93ac8e92512615c5f83e7a328b3b0544 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Fix missing includes for llvm_unreachable git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Switch assert(0/false) llvm_unreachable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d7bb6a014afec8c8e2962d8282db412e664dc2f9 |
|
22-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
ArrayRef-ifying MacroArgs::create's arguments argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
62ec1f2fd7368542bb926c04797fb07023547694 |
|
17-Sep-2011 |
Francois Pichet <pichet2000@gmail.com> |
Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag. Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
fba18aa8f2cd1994dc65e8cb9f4be201c560dc0b |
|
16-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Add an experimental flag -fauto-module-import that automatically turns #include or #import direcctives of framework headers into module imports of the corresponding framework module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5471bc85b69912e3b448de004498a80c0de32296 |
|
08-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Allow C++0x enumerations with a fixed underlying type in Objective-C. The @encode'ing of such an enumeration type is the same as its underlying type. <rdar://problem/5276348>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e97179c675b341927807c718be215c8d1aab8acb |
|
08-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement the Objective-C 'instancetype' type, which is an alias of 'id' that can be used (only!) via a contextual keyword as the result type of an Objective-C message send. 'instancetype' then gives the method a related result type, which we have already been inferring for a variety of methods (new, alloc, init, self, retain). Addresses <rdar://problem/9267640>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7640c0070361bd365e30fc2eb3b6a64361fa7377 |
|
06-Sep-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Advertise support for cxx_range_for as an extension in C++98 mode. Patch by Jean-Daniel Dupas! Also provide a modicum of test coverage for ranged for in C++98. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
74e611a5fd0b5977c664d13a07b625ae23527d0d |
|
04-Sep-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add test case for defaulted copy and move structure validation. Fix bug this uncovered. Address minor comments from Doug. Enable cxx_implicit_moves feature. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7d100872341f233c81e1d7b72b40457e62c36862 |
|
04-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support code-completion for C++ inline methods and ObjC buffering methods. Previously we would cut off the source file buffer at the code-completion point; this impeded code-completion inside C++ inline methods and, recently, with buffering ObjC methods. Have the code-completion inserted into the source buffer so that it can be buffered along with a method body. When we actually hit the code-completion point the cut-off lexing or parsing. Fixes rdar://10056932&8319466 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e2ca828119b8bff4a5c25c6db8ee4fec558451e7 |
|
01-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't try keeping a 'LeadingEmptyMacroLoc' in NullStmt. This fails in the face of buffering C++/ObjC method bodies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ece3894a9fe3ce3d282e63c349d84c0923143fe2 |
|
29-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Add and document __has_feature values for the remaining C++0x features, so clients can check for the availability of these features even before we get around to implementing them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5c5f03e4020e90b9760ec547962ba02b029cc359 |
|
18-Aug-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Support code-completion inside macro arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1b2d53647dda5e4a70cea54ec3bedbf167081120 |
|
18-Aug-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
For the MacroExpands preprocessor callback, also pass the SourceRange of expansion (for function macros it includes the right paren). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e1f6dea1c9593651116fa9a5faa05647d18f3193 |
|
07-Aug-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Add a __has_feature macro for generalized initializers, turned off because we don't support them yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b3f8c244a0f193229a6fdbcea1a3615aff5b90dc |
|
03-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Comment the weird behavior of __has_feature(is_empty) and __has_feature(is_pod) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9a14ecbdecd89801d87beae92ad60845374e252a |
|
30-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Fix a thinko in my __is_empty/__is_pod commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
688761409155b47c39eb5dae1b8c6c8a9f43307a |
|
30-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Turn off __has_feature(is_empty) and __has_feature(is_pod) if the libstdc++ hack has reverted these type traits to keywords. Icky, but fixes <rdar://problem/9836262>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
bf340e452339e374ea6eef78c1f0a2abdd16c5a3 |
|
26-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rename create(MacroArg)InstantiationLoc to create(MacroArg)ExpansionLoc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
edc3dccece244a584f8ebdb81da6c962c08e79be |
|
25-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rename SourceManager::getInstantiationRange to getExpansionRange. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
2d3ba4f5a923a90c3fc290ddfba5e36c2d0a9b46 |
|
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
Move ArrayRef to LLVM.h and eliminate now-redundant qualifiers, patch by Jon Mulder! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5f9e272e632e951b1efe824cd16acb4d96077930 |
|
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
858a325e5f250c83409137c5609b162983ea6d1e |
|
18-Jul-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Remember to add a has_feature macro for __underlying_type now that it is correctly impelmented git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9e5bb85ac899eeab7c21b5ff9030c3da6ff4837b |
|
14-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move the rest of the preprocessor terminology from 'instantiate' and variants to 'expand'. This changed a couple of public APIs, including one public type "MacroInstantiation" which is now "MacroExpansion". The rest of the codebase was updated to reflect this, especially the libclang code. Two of the C++ (and thus easily changed) libclang APIs were updated as well because they pertained directly to the old MacroInstantiation class. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9f084a3166b684573ba49df28fc5792bc37d92e1 |
|
06-Jul-2011 |
John McCall <rjmccall@apple.com> |
Change the driver's logic about Objective-C runtimes: abstract out a structure to hold inferred information, then propagate each invididual bit down to -cc1. Separate the bits of "supports weak" and "has a native ARC runtime"; make the latter a CodeGenOption. The tool chain is still driving this decision, because it's the place that has the required deployment target information on Darwin, but at least it's better-factored now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5b3284a9275a27f5c4410e25eb8933be540601d6 |
|
30-Jun-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce a caching mechanism for macro expanded tokens. Previously macro expanded tokens were added to Preprocessor's bump allocator and never released, even after the TokenLexer that were lexing them was finished, thus they were wasting memory. A very "useful" boost library was causing clang to eat 1 GB just for the expanded macro tokens. Introduce a special cache that works like a stack; a TokenLexer can add the macro expanded tokens in the cache, and when it finishes, the tokens are removed from the end of the cache. Now consumed memory by expanded tokens for that library is ~ 1.5 MB. Part of rdar://9327049. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f85e193739c953358c865005855253af4f68a497 |
|
16-Jun-2011 |
John McCall <rjmccall@apple.com> |
Automatic Reference Counting. Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions. Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself, in no particular order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
84ee2eeec9f63e4938bafd060105fa4f0c9cd89b |
|
22-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Audit and finish the implementation of C++0x nullptr, fixing two minor issues along the way: - Non-type template parameters of type 'std::nullptr_t' were not permitted. - We didn't properly introduce built-in operators for nullptr ==, !=, <, <=, >=, or > as candidate functions . To my knowledge, there's only one (minor but annoying) part of nullptr that hasn't been implemented: catching a thrown 'nullptr' as a pointer or pointer-to-member, per C++0x [except.handle]p4. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d1aab5be8b24f5a65f6448be27020c453ec89019 |
|
20-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Revert r131672 until __underlying_type is properly implemented in the template case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0191b6b638ee57cc1108f427fc93d57e75ef7222 |
|
19-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Implement a __has_feature for __underlying_type git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
c1b5fa41f09512c74030b9a2a0d1564535e22a76 |
|
13-May-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Introduce __has_extension macro __has_extension is a function-like macro which takes the same set of feature identifiers as __has_feature. It evaluates to 1 if the feature is supported by Clang in the current language (either as a language extension or a standard language feature) or 0 if not. At the same time, add support for the C1X feature identifiers c_generic_selections (renamed from generic_selections) and c_static_assert, and document them. Patch by myself and Jean-Daniel Dupas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
feb375d31b7e9108b04a9f55b721d5e0c793a558 |
|
13-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Implement the __is_trivially_copyable type trait git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a55e68b7f961d6ef4551c9be9ac18a1e25c7c927 |
|
12-May-2011 |
Howard Hinnant <hhinnant@apple.com> |
enable __has_feature(is_standard_layout) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7822ee3ef9f0d5cfd289258614ac31be70097449 |
|
12-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement CWG1170, which makes access-control errors into template argument deduction failures. Only implemented in C++0x, since this is a significant change in behavior from C++98/03. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3e4c6c4c79a03f5cb0c4671d7c282d623c6dc35e |
|
05-May-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++0x alias templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
059ce0d92eb5a7da900ae735dc0a2ea3d64f4b0b |
|
01-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Fully implement delegating constructors! As far as I know, this implementation is complete but might be missing a few optimizations. Exceptions and virtual bases are handled correctly. Because I'm an optimist, the web page has appropriately been updated. If I'm wrong, feel free to downgrade its support categories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
91d3df506fa66de3919fd7284737eed93e5ed01f |
|
28-Apr-2011 |
Douglas Gregor <dgregor@apple.com> |
Only call the MacroExpands callback when we're actually going to expand the macro, based on a patch by Ori Avtalion. Fixes PR9799. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b7d98d35ea723624345f06e5895ddce2e0388ef0 |
|
27-Apr-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
If a null statement was preceded by an empty macro keep its instantiation source location in NullStmt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7412494982c8b50c90961302c3a718633b2c3ab7 |
|
26-Apr-2011 |
Manuel Klimek <klimek@google.com> |
To be able to replay compilations we need to accurately remodel how includes get resolved, especially when they are found relatively to another include file. We also try to get it working for framework includes, but that part of the code is untested, as I don't have a code base that uses it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b7e9589bce9852b4db9575f55ac9137572147eb5 |
|
23-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Implement basic __is_trivial type-trait support, enough to close PR9472. This introduces a few APIs on the AST to bundle up the standard-based logic so that programmatic clients have access to exactly the same behavior. There is only one serious FIXME here: checking for non-trivial move constructors and move assignment operators. Those bits need to be added to the declaration and accessors provided. This implementation should be enough for the uses of __is_trivial in libstdc++ 4.6's C++98 library implementation. Ideas for more thorough test cases or any edge cases missing would be appreciated. =D git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4e61ddd644e9c6293697a966d98d7c1905cf63a8 |
|
23-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Sort the type traits in a few places where they weren't previously sorted in order to prepare for adding some new ones. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
32c1388f0feef4ea147f881415f5a7225e8cadcc |
|
23-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
don't warn about empty macro arguments in c++'0x mode, since it sucked in the c99 preprocessor. Patch by Jonathan Sauer! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a391a4642c5eb98aae606f2a2b7219b1a3619d11 |
|
15-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add __has_feature(cxx_range_for) check for C++11 range-based for loop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f111d935722ed488144600cea5ed03a6b5069e8f |
|
15-Apr-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
C1X: implement generic selections As an extension, generic selection support has been added for all supported languages. The syntax is the same as for C1X. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
dceb53180ae145915673913a9398ba4a00b05584 |
|
26-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
Add a __has_feature check for the 'availability' attribute git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
c8b9f7977094d0169ec59f9042e85ca854735299 |
|
25-Mar-2011 |
Anders Carlsson <andersca@mac.com> |
we can now claim to fully support the override control feature in C++0x. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b5142bb7af5c70fffd09f05172a1379a35a9c29a |
|
16-Mar-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add a 'RawPath' parameter to the PPCallbacks interface. This allows clients to observe the exact path through which an #included file was located. This is very useful when trying to record and replay inclusion operations without it beind influenced by the aggressive caching done inside the FileManager to avoid redundant system calls and filesystem operations. The work to compute and return this is only done in the presence of callbacks, so it should have no effect on normal compilation. Patch by Manuel Klimek. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4561ecdf27b68d80b3cecc2d80ec32bea0ac2127 |
|
15-Mar-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Create __has_feature(cxx_noexcept) and mark it as working. Find out that our C++0x status has only one field for noexcept expression and specification together, and that it was accidentally already marked as fully implemented. This completes noexcept specification work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
d5313b0bbf3948fe7c63bf46a7da330c96d07309 |
|
02-Mar-2011 |
John McCall <rjmccall@apple.com> |
Provide an attribute, objc_method_family, to allow the inferred family of an Objective-C method to be overridden on a case-by-case basis. This is a higher-level tool than ns_returns_retained &c.; it lets users specify that not only does a method have different retain/release semantics, but that it semantically acts differently than one might assume from its name. This in turn is quite useful to static analysis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
84021556baceb76eedf7d44be8ba71d9b8cfacce |
|
28-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Rename tok::eom to tok::eod. The previous name was inaccurate as this token in fact appears at the end of every preprocessing directive, not just macro definitions. No functionality change, except for a diagnostic tweak. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
738291eedac0f3f3628e34b0b32d6155f280fab2 |
|
20-Feb-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Turn on __has_feature(cxx_auto_type). The feature is now fully implemented. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0750800623dc6d14c4c0c721996ffd4210fcdff3 |
|
05-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Add a __has_feature check for default template arguments in function templates, a C++0x feature. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
afdf137c50f7f96ef865cf007f660dd663a8731f |
|
03-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Add __has_feature() for each of the type traits git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
11fe175346242744bd9cb4040f3c84e243934134 |
|
27-Jan-2011 |
Ted Kremenek <kremenek@apple.com> |
Wire up attributes 'ns_consumed' and 'cf_consumed' in the static analyzer's ObjC retain/release checker. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
12b9434d5bf801e24242b1f6fd04899f8a7fa92c |
|
27-Jan-2011 |
Ted Kremenek <kremenek@apple.com> |
Hook up attribute ns_consumes_self in the ObjC retain/release checker in the static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
56209ffed29ab82d0d65ac0d1d026fe179321afd |
|
26-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Add __has_feature(cxx_reference_qualified_functions); update tests and documentation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
c78e259a5fafd889f5945bc2c48fea48cb3ef9d0 |
|
26-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Clean up the C++0x __has_feature tests. Specifically: - Don't publicize a C++0x feature through __has_feature if we aren't in C++0x mode (even if the feature is available only with a warning). - "auto" is not implemented well enough for its __has_feature to be turned on. - Fix the test of C++0x __has_feature to actually test what we're trying to test. Searching for the substring "foo" when our options are "foo" and "no_foo" doesn't work :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
16cf8f5b6f582876b64e132715280fc473f876b9 |
|
25-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Downgrade the error about rvalue references to an extension warning and turn on __has_feature(cxx_rvalue_references). The core rvalue references proposal seems to be fully implemented now, pending lots more testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
83d7781f9dc869022d48dbabde34dbfbd6f59a17 |
|
20-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Eradicate any mention of C++0x concepts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4c9131ac2d0a65cb7c0179d438ae56f7978ab012 |
|
19-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Variadic templates are fully implemented. Turn on the __has_feature switch for variadic templates, document their completion, and put the ExtWarn into the c++0x-extensions warning group. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3ed572e6252683917cffee0c2b2f41a20e7289c4 |
|
15-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
clean up some dead code around __has_include() processing code identified by the ted-o-matic. rdar://8867482 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0827408865e32789e0ec4b8113a302ccdc531423 |
|
15-Dec-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix diagnostic pragmas. Diagnostic pragmas are broken because we don't keep track of the diagnostic state changes and we only check the current/latest state. Problems manifest if a diagnostic is emitted for a source line that has different diagnostic state than the current state; this can affect a lot of places, like C++ inline methods, template instantiations, the lexer, etc. Fix the issue by having the Diagnostic object keep track of the source location of the pragmas so that it is able to know what is the diagnostic state at any given source location. Fixes rdar://8365684. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
44aa1f397855f130e88e62ffc1029f7f83bb5d2e |
|
20-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Revert r119838 "Don't warn for empty 'if' body if there is a macro that expands to nothing" and use a better and more general approach, where NullStmt has a flag to indicate whether it was preceded by an empty macro. Thanks to Abramo Bagnara for the hint! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a25b6a4b43e8b9611f7506e5fe1b448833b10a46 |
|
19-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't warn for empty 'if' body if there is a macro that expands to nothing, e.g: if (condition) CALL(0); // empty macro but don't warn for empty body. Fixes rdar://8436021. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
cb7b1e17b63967317ab5cc55682168cf0380519a |
|
12-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
Make sure to always check the result of SourceManager::getPresumedLoc(), so that we don't try to make use of an invalid presumed location. Doing so can cause crashes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
513038d9776fd2a2d19e9c6dfd3ab677cbcaa3c2 |
|
09-Nov-2010 |
NAKAMURA Takumi <geek4civic@gmail.com> |
lib/Lex/PPMacroExpansion.cpp: Fixup to appease MSVC. Confirmed on MSVS10. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
6665ffbfc397f68e3fb15844597674d5861995b6 |
|
09-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
Appeasing MSVC, take 3 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b87b29ec2ae449686a745c257e577b7158d8d4aa |
|
09-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
Try to appease MSVC git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5e0fb35232366d1956647c2e01ea183242fba28c |
|
09-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
sprintf -> snprintf conversion, from Vladimir Kirillov git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4820908be98f340a4c2a563a622ae693a7219c50 |
|
08-Nov-2010 |
John McCall <rjmccall@apple.com> |
Document Clang's support for attributes on individual enumerators and tweak the documentation for deprecation-with-message. Provide __has_feature tests for both. rdar://problem/8605692 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
295a2a617ac335f590e430ab7fcd98f8ce109251 |
|
30-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Make the deserialization of macro definitions lazy, so that we can load identifiers without loading their corresponding macro definitions. This is likely to improve PCH performance slightly, and reduces deserialization stack depth considerably when using preprocessor metaprogramming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ecdcb883cbc6bb4a2445dc6f02d58d9bdb54a0ed |
|
21-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Extend the preprocessing record and libclang with support for inclusion directives, keeping track of every #include, #import, etc. in the translation unit. We keep track of the source location and kind of the inclusion, how the file name was spelled, and the underlying file to which the inclusion resolved. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
cae5095c116c29a4e52c91fa0ad88df09dd2b45f |
|
20-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
Add a __has_attribute macro that works much like __has_feature and __has_builtin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1274ccd90aec0b205fc838c3d504821ccfb55482 |
|
09-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement C++0x scoped enumerations, from Daniel Wallin! (and tweaked a bit by me). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
dab60ad68a3a98d687305941a3852e793705f945 |
|
01-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement the C++0x "trailing return type" feature, e.g., auto f(int) -> int from Daniel Wallin! (With a few minor bug fixes from me). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
37bf9d2bb74944c9d9a52522412bc077629977f1 |
|
24-Sep-2010 |
Anders Carlsson <andersca@mac.com> |
Allow the use of C++0x deleted functions as an extension in C++98. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f6c09775819cf851d71750bfc056dfe39ce801e1 |
|
01-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement __has_feature(cxx_inline_namespaces) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1ef8a2e7675f3d8b6e8d9963b00378086e1dcdc7 |
|
29-Aug-2010 |
John McCall <rjmccall@apple.com> |
Add support for Microsoft's __pragma in the preprocessor. Patch by Francois Pichet! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f29c5233085a5af795c3c01b94d319e5b3235d56 |
|
25-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement code completion for preprocessor expressions and in macro arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
dd0e490c24aeade2c59ca4cae171199f6af9f02e |
|
31-Jul-2010 |
Ted Kremenek <kremenek@apple.com> |
After a lengthy design discussion, add support for "ownership attributes" for malloc/free checking. Patch by Andrew McGregor! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1f84f8d970a673e487b40d341cd3e8d52ca9cc22 |
|
24-Jun-2010 |
Eric Christopher <echristo@apple.com> |
More clang support for darwin tls. Add a __has_feature macro and target specific preprocessor define as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3ff9d1110fed519ad81302ecc154814c33a4962b |
|
29-Apr-2010 |
Ted Kremenek <kremenek@apple.com> |
Add '__has_feature' support for weak ObjC classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
6d9afd95d6b4bf84a4d1909ce47c54199d880812 |
|
29-Apr-2010 |
Ted Kremenek <kremenek@apple.com> |
Sort '__has_feature' cases. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
8ff66de0d036842450eb979882f826d5252100f4 |
|
26-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a case where macro expansion should be disabled, patch by Abramo Bagnara! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
453091cc2082e207ea2c2dda645a9bc01b37fb0c |
|
16-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Audit all Preprocessor::getSpelling() callers, improving failure recovery for those that need it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
444b035b5325973bdd5a622006fda6367a670a94 |
|
05-Mar-2010 |
Ted Kremenek <kremenek@apple.com> |
Augment __has_feature to report that Clang supports adding attribute 'unused' to an Objective-C instance variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ddeea5644367c9c153c9fee9e51bdea85ce43cbd |
|
27-Feb-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add an overload of Preprocessor::getSpelling which takes a SmallVector and returns a StringRef. Use it to simplify some repetitive code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1359300dd68bf428915605c6be34afda20886aa3 |
|
18-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Add __has_feature support for attributes ns_returns_not_retained and cf_returns_not_retained. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b176591b2e24a985fc90ee2d259f914ba3fcec5b |
|
27-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use raw_ostreams in Preprocessor::ExpandBuiltinMacro. Still not nice but less fragile than the old code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1367897633c2f5bb77f97cb05c76d5f80ead9976 |
|
26-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix typo in comment git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f45b646244705410866d62f1d8bf017a047ed662 |
|
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
revert my patch for rdar://7520940 that warns when a published header is #included with "foo.h" style syntax instead of framework syntax. It produced too much noise. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4ef4c6b232121dd611fc4ff9711052aaace635a3 |
|
13-Jan-2010 |
Sean Hunt <rideau3@gmail.com> |
Add a bunch more feature-checking macros for C++0x features. Some of these are disabled with the intent that users can start with them now and not have to change a thing to have them work when we implement the features. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a139481e62fdb209d9d87a54a5733f989d2e8d51 |
|
10-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
stringref'ize a bunch of filename handling logic. Much nicer than passing around two const char*'s. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
804f65271953f358dc01bfcf74a93e8c93c5b2d6 |
|
10-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
implement rdar://7520940: published framework headers should import other headers within the same framework with the full framework path, not with a relative include. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
32592e89e1903d4e2c1b96faf4fccf5e64f71a0e |
|
09-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify with StringSwitch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
561395bead16b9dc9b0d5bfb6b257a9ed4545db6 |
|
14-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
move the VarargsElided member of MacrosArgs to shrink the MacroArgs struct on 64-bit targets. Pass Preprocessor into create/destroy methods of MacroArgs even though it isn't used yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
265f52e920a46c8029760ced39363ffb48c43f10 |
|
08-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Get rid of some diagnostics that don't follow our rules for -pedantic diagnostics (specifically, that any extension in a compiler-reserved namespace shouldn't trigger a diagnostic). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90826 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7d9bd4257f817494b2fa5b310df05807050a9c18 |
|
03-Dec-2009 |
Ted Kremenek <kremenek@apple.com> |
Add 'has_feature(cxx_exceptions)' to allow code to determine via preprocessor logic if C++ exceptions are enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
2eca546c5836938dff3a517fbe43f266073215ab |
|
03-Dec-2009 |
Ted Kremenek <kremenek@apple.com> |
Rename has_feature(rtti) to has_feature(cxx_rtti) for clarity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
848001c0cdddc05b7fd71251e1b635c0af24896d |
|
03-Dec-2009 |
Ted Kremenek <kremenek@apple.com> |
Add "has_feature" support for C++ RTTI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
92bd8c70a6837b647a6c55964f8d0a50bf561dbc |
|
02-Nov-2009 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
Added __has_include and __has_include_next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
37473829cb2308af5b268a2d58bf3d7fa2056610 |
|
16-Sep-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
PR4991: Properly remove trailing newline from __TIMESTAMP__. Replace strcpy with memcpy while at it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
|
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
8a5a9aaddb627c0884c2ed8db55cc29fdb601195 |
|
31-Aug-2009 |
David Chisnall <csdavec@swan.ac.uk> |
Updated GNU runtime non-fragile ABI. Added -fconstant-string-class= option. Added __has_feature() test for non-fragile ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
148772a841cae6f32db16d890e788b92a763bb3f |
|
13-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
implement and document a new __has_feature and __has_builtin magic 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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
beaaccd8e2a8748f77b66e2b330fb9136937e14c |
|
21-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Use v.data() instead of &v[0] when SmallVector v might be empty. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9fc9e77c2fd15a88bd19ff3fdc9eb9716742f720 |
|
13-May-2009 |
Chris Lattner <sabre@nondot.org> |
When we expect two arguments but have zero, make sure to add 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
97e2de171de555feb1ef422e71874082a67498c9 |
|
20-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix the second half of PR4006 and rdar://6807000 by treating () as being either zero arguments or one empty argument depending on situation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
dff070fb0f2880806ef1ae5471ace37a97dd9e6a |
|
19-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR3917: the location of a #line directive is the location of the first _. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
5c497a80c60061ba5bc3d8bd1518c15b7d7556dd |
|
18-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix PR3927 by being more careful about the pp test for identifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0a4f1b9550b81b1391d79c0dd5a416951f4df9a6 |
|
18-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Substantially restructure function-like macro argument parsing. Highlights: PP::isNextPPTokenLParen() no longer eats the ( when present. We now simplify slightly the logic parsing macro arguments. We now handle PR3937 and other related cases correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
c1f9d828c733ec1eba06d01070735d1f36fda733 |
|
13-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
implement the microsoft/gnu "__COUNTER__" macro: rdar://4329310 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
555589dd0121da04544e5b6a2049aed005f46d78 |
|
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
simplify code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4fcb4cd6556cd783b2a8cd2b7266ae4696e605bb |
|
25-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
fix PR3880, fixing a comma swallowing bug handling macros that only take ... arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
03162d6d2aef5667816ce19788b6a752299bea43 |
|
25-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
remove some dead code. ArgTokens can never be empty, because it is always terminated with an EOF token. The condition it is trying to check for is handled by this code above. // Empty arguments are standard in C99 and supported as an extension in // other modes. if (ArgTokens.empty() && !Features.C99) Diag(Tok, diag::ext_empty_fnmacro_arg); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ba9eee326434ba62b180271d3cc2999d94ee0de4 |
|
12-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
add a callback for macro expansion, based on a patch by Paolo Bolzoni! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1fa495304c81e03f07f278a47b5efe9317104aab |
|
08-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
simplify some logic by making ScratchBuffer handle the application of trailing \0's to created tokens instead of making all clients do it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
3daed52a57d03765223021f5f921bdc280c8f3cc |
|
02-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
improve compatibility with GCC 4.4, patch by Michel Salim (PR3697) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
6678133b8ce642f93e5141f056fa643112041ad0 |
|
15-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
add a new SourceManager::getInstantiationRange helper method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
081927bbabf1b5c28ce695e93472f8bcd42b7c0d |
|
15-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
fix PR3579: __LINE__ expands to the presumed location of the *end* of a macro instantiation, not the start of it. This is really all about bug-for-bug compatibility with GCC, but not doing this breaks the FreeBSD kernel. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e7fb48466afcbf2c4ccdfa658824282fdc3c512c |
|
15-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
track "just a little more" location information for macro instantiations. Now instead of just tracking the expansion history, also track the full range of the macro that got replaced. For object-like macros, this doesn't change anything. For _Pragma and function-like macros, this means we track the locations of the ')'. This is required for PR3579 because apparently GCC uses the line of the ')' of a function-like macro as the location to expand __LINE__ to. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
500d3297d2a21edeac4d46cbcbe21bc2352c2a28 |
|
29-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
move library-specific diagnostic headers into library private dirs. Reduce redundant #includes. Patch by Anders Johnsen! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
20c6b3b85e186cd52d5d99489132d71d498159eb |
|
27-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
Split the single monolithic DiagnosticKinds.def file into one .def file for each library. This means that adding a diagnostic to sema doesn't require all the other libraries to be rebuilt. Patch by Anders Johnsen! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
b9c3f966b103f7cfe8e5e60007c4c8b38f7298eb |
|
27-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
Introduce a new PresumedLoc class to represent the concept of a location as reported to the user and as manipulated by #line. This is what __FILE__, __INCLUDE_LEVEL__, diagnostics and other things should follow (but not dependency generation!). This patch also includes several cleanups along the way: - SourceLocation now has a dump method, and several other places that did similar things now use it. - I cleaned up some code in AnalysisConsumer, but it should probably be simplified further now that NamedDecl is better. - TextDiagnosticPrinter is now simplified and cleaned up a bit. This patch is a prerequisite for #line, but does not actually provide any #line functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
e7689886d6a68507ae90ca330bd24bf89d4d6df1 |
|
26-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
remove my hacks that aggressively threw away multiple instantiation history in an effort to speed up c99-intconst-1.c. Now that multiple nested instantiations are allowed, we just make them and don't pay the cost of lookups. With the other changes that went in before this, reverting this is actually a speedup for c99-intconst-1.c, speeding it up from 1.96s to 1.80s, and preserves much better loc info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
47246be8ac5b0ddde6c402b8fc6946b6135487b5 |
|
26-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
This change refactors some of the low-level lexer interfaces a bit. Token now has a class of kinds for "literals", which include numeric constants, strings, etc. These tokens can optionally have a pointer to the start of the token in the lexer buffer. This makes it faster to get spelling and do other gymnastics, because we don't have to go through source locations. This change is performance neutral, but will make other changes more feasible down the road. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
7c35122df2998d9f615c3ebd4b71a91a2c6287d6 |
|
26-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
eagerly resolve the spelling locations of macro argument preexpansions. This reduces fsyntax-only time on c99-intconst-1.c from 2.43s down to 2.01s (20%), reducing the number of fileid lookups from 2529040 linear and 64771121 binary to 5625902 linear and 4151182 binary. This knocks getFileID down to only 4.6% of compile time on this testcase. At this point, malloc/free is over 35% of compile time, primarily allocating MacroArgs objects and their argument preexpansion vectors. I don't feel like malloc avoiding right now, so I'm just going to call this good. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9bd0d59026d4995148443512ab5ddf009117bfd8 |
|
26-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
Eagerly resolve the spelling location of the tokens in a definition of a macro. Since these tokens may themselves be from macro expansions, we need to resolve down to the spelling loc when the macro ends up being instantiated. Instead of resolving this for each token expanded from the macro definition, just do it once when the macro is defined. This speeds up clang on c99-intconst-1.c from 2.66s to 2.43s (9.5%), reducing the FileID lookups from 407244 linear and 114175649 binary to 2529040 linear and 64771121 binary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
de7aeefc5573d669ed476d7bda7a8940d3bcadb7 |
|
26-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
Check in the long promised SourceLocation rewrite. This lays the ground work for implementing #line, and fixes the "out of macro ID's" problem. There is nothing particularly tricky about the code, other than the very performance sensitive SourceManager::getFileID() method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f7cf85b330bedd2877e1371fb0a83e99751ae162 |
|
16-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
more SourceLocation lexicon change: instead of referring to the "logical" location, refer to the "instantiation" location. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
0ea76727ae91bca918a8414ed85b530eddcfedeb |
|
15-Dec-2008 |
Ted Kremenek <kremenek@apple.com> |
Preprocessor: Allocate MacroInfo objects using a BumpPtrAllocator instead using new/delete. This speeds up -Eonly on Cocoa.h using the regular lexer by 1.8% and the PTHLexer by 3%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
dd95d6cca5f52eabbc25e5928a60078a54a4c875 |
|
20-Nov-2008 |
Ted Kremenek <kremenek@apple.com> |
Handle another case where we should use PTHLexer as an alternative to the normal Lexer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
a275a191fccfb2f9dff57f43d76dd266ff33bff7 |
|
20-Nov-2008 |
Ted Kremenek <kremenek@apple.com> |
Assign the result of getCurrentFileLexer() to a PreprocessorLexer* instead of Lexer* (narrower interface). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
ac80c6e06b5815228e46294e51c493a74a21f8bc |
|
19-Nov-2008 |
Ted Kremenek <kremenek@apple.com> |
Use PreprocessorLexer::getFileID() instead of Lexer::getFileLoc(). This is an intermediate step to having getCurrentLexer() return a PreprocessorLexer* instead of a Lexer*. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
1a531570d294ffc300cce1bc5e73de847a370f4f |
|
19-Nov-2008 |
Ted Kremenek <kremenek@apple.com> |
Move more cases of using 'CurLexer' to 'CurPPLexer'. Use PTHLexer::isNextPPTokenLParen() when using the PTHLexer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
17ff58a63197b398ae52697b088dc0fb8b255519 |
|
19-Nov-2008 |
Ted Kremenek <kremenek@apple.com> |
When using a PTHLexer, use DiscardToEndOfLine() instead of ReadToEndOfLine(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
68a91d5736c2c03d60a9d1c59d08191b8e0d6c52 |
|
18-Nov-2008 |
Ted Kremenek <kremenek@apple.com> |
Replace more uses of 'CurLexer->' with 'CurPPLexer->'. No performance change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
4411f46050216a139ab2fc7ff145ec384d11ec7f |
|
30-Sep-2008 |
Chris Lattner <sabre@nondot.org> |
Fix the root cause of PR2750 instead of the side effect. NumericLiteral parser is not careful about overrun because it should never be possible. It implicitly expects that its input matched the regex for pp-constant. Because of this, it knows it can't be pointing to a prefix of something that looks like a number. This is all fine, except that __LINE__ does not prevent implicit concatenation from happening. Fix __LINE__ to not do this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
63bc0358706e63faf705803c4799e073b91a63f0 |
|
08-May-2008 |
Chris Lattner <sabre@nondot.org> |
The awesome GNU "comma elision extension" works with both the standard __VA_ARGS__ syntax as well as with the amazingly awesome GNU "named variadic macro" extension. Allow it with the GNU syntax as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
9a4939f7edb5dc40b20865edbd4ddd830450423d |
|
21-Mar-2008 |
Sam Bishop <sam@bishop.dhs.org> |
Plug a memory leak in the "this macro expands into a single trivially- expanded token" case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
f90a24857851f7d28797205c810aae1708eaa60c |
|
18-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
move #include to the file that needs it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|
bda0b626e74513950405c27525af87e214e605e2 |
|
16-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Make a major restructuring of the clang tree: introduce a top-level lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/PPMacroExpansion.cpp
|