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
|