Douglas Gregor
9169dcb7a9
sprintf -> snprintf conversion, from Vladimir Kirillov
...
llvm-svn: 118478
2010-11-09 03:20:07 +00:00
John McCall
f71b45367f
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
llvm-svn: 118435
2010-11-08 19:48:17 +00:00
Douglas Gregor
5ef9e33137
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.
llvm-svn: 117750
2010-10-30 00:23:06 +00:00
Douglas Gregor
796d76a663
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.
llvm-svn: 116952
2010-10-20 22:00:55 +00:00
Anders Carlsson
274a70ed7f
Add a __has_attribute macro that works much like __has_feature and __has_builtin.
...
llvm-svn: 116906
2010-10-20 02:31:43 +00:00
Douglas Gregor
0bf3140424
Implement C++0x scoped enumerations, from Daniel Wallin! (and tweaked a
...
bit by me).
llvm-svn: 116122
2010-10-08 23:50:27 +00:00
Douglas Gregor
7fb25418ed
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).
llvm-svn: 115322
2010-10-01 18:44:50 +00:00
Anders Carlsson
991285e425
Allow the use of C++0x deleted functions as an extension in C++98.
...
llvm-svn: 114762
2010-09-24 21:25:25 +00:00
Sebastian Redl
a93bb5b807
Implement __has_feature(cxx_inline_namespaces)
...
llvm-svn: 112671
2010-08-31 23:28:47 +00:00
John McCall
89e925d78e
Add support for Microsoft's __pragma in the preprocessor.
...
Patch by Francois Pichet!
llvm-svn: 112391
2010-08-28 22:34:47 +00:00
Douglas Gregor
ec00a26855
Implement code completion for preprocessor expressions and in macro
...
arguments.
llvm-svn: 111976
2010-08-24 22:20:20 +00:00
Ted Kremenek
d21139a34f
After a lengthy design discussion, add support for "ownership attributes" for malloc/free checking. Patch by Andrew McGregor!
...
llvm-svn: 109939
2010-07-31 01:52:11 +00:00
Eric Christopher
03256c32ff
More clang support for darwin tls. Add a __has_feature macro and
...
target specific preprocessor define as well.
llvm-svn: 106715
2010-06-24 02:02:00 +00:00
Ted Kremenek
e506ddc71e
Add '__has_feature' support for weak ObjC classes.
...
llvm-svn: 102588
2010-04-29 02:06:46 +00:00
Ted Kremenek
6459939112
Sort '__has_feature' cases. No functionality change.
...
llvm-svn: 102587
2010-04-29 02:06:42 +00:00
Chris Lattner
8c5d05a299
fix a case where macro expansion should be disabled, patch by
...
Abramo Bagnara!
llvm-svn: 99626
2010-03-26 17:49:16 +00:00
Douglas Gregor
dc970f0866
Audit all Preprocessor::getSpelling() callers, improving failure
...
recovery for those that need it.
llvm-svn: 98689
2010-03-16 22:30:13 +00:00
Ted Kremenek
a00c5db1a8
Augment __has_feature to report that Clang supports adding attribute 'unused'
...
to an Objective-C instance variable.
llvm-svn: 97850
2010-03-05 22:43:32 +00:00
Benjamin Kramer
0a1abd4088
Add an overload of Preprocessor::getSpelling which takes a SmallVector and
...
returns a StringRef. Use it to simplify some repetitive code.
llvm-svn: 97322
2010-02-27 13:44:12 +00:00
Ted Kremenek
f2b64ba858
Add __has_feature support for attributes ns_returns_not_retained
...
and cf_returns_not_retained.
llvm-svn: 96538
2010-02-18 00:06:04 +00:00
Benjamin Kramer
b925f7707e
Use raw_ostreams in Preprocessor::ExpandBuiltinMacro. Still not nice but less fragile than the old code.
...
llvm-svn: 94679
2010-01-27 16:38:22 +00:00
Douglas Gregor
64213261b4
Fix typo in comment
...
llvm-svn: 94576
2010-01-26 19:43:43 +00:00
Chris Lattner
fde85356c6
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.
llvm-svn: 94120
2010-01-22 00:14:44 +00:00
Alexis Hunt
af4e28d897
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.
llvm-svn: 93312
2010-01-13 08:31:49 +00:00
Chris Lattner
d081f8c851
stringref'ize a bunch of filename handling logic. Much
...
nicer than passing around two const char*'s.
llvm-svn: 93094
2010-01-10 01:35:12 +00:00
Chris Lattner
2ceb625f59
implement rdar://7520940: published framework headers should
...
import other headers within the same framework with the full
framework path, not with a relative include.
llvm-svn: 93083
2010-01-10 00:24:58 +00:00
Benjamin Kramer
60fbd641ad
Simplify with StringSwitch.
...
llvm-svn: 93064
2010-01-09 18:53:11 +00:00
Chris Lattner
ffbf2de1d8
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.
llvm-svn: 91345
2009-12-14 22:12:52 +00:00
Eli Friedman
be6f4cffca
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).
llvm-svn: 90826
2009-12-08 02:22:26 +00:00
Ted Kremenek
5ef26fb4fd
Add 'has_feature(cxx_exceptions)' to allow code to determine via preprocessor logic if C++ exceptions are enabled.
...
llvm-svn: 90378
2009-12-03 01:34:15 +00:00
Ted Kremenek
c3fe01943f
Rename has_feature(rtti) to has_feature(cxx_rtti) for clarity.
...
llvm-svn: 90376
2009-12-03 01:31:28 +00:00
Ted Kremenek
4bc256ec9d
Add "has_feature" support for C++ RTTI.
...
llvm-svn: 90368
2009-12-03 01:02:35 +00:00
John Thompson
ac0b098d4d
Added __has_include and __has_include_next.
...
llvm-svn: 85834
2009-11-02 22:28:12 +00:00
Benjamin Kramer
26ddfee3b2
PR4991: Properly remove trailing newline from __TIMESTAMP__.
...
Replace strcpy with memcpy while at it.
llvm-svn: 82043
2009-09-16 13:10:04 +00:00
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
David Chisnall
5778fce141
Updated GNU runtime non-fragile ABI.
...
Added -fconstant-string-class= option.
Added __has_feature() test for non-fragile ABI.
llvm-svn: 80591
2009-08-31 16:41:57 +00:00
Chris Lattner
b6f77af532
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).
llvm-svn: 73289
2009-06-13 07:13:28 +00:00
Jay Foad
7d0479f2c2
Use v.data() instead of &v[0] when SmallVector v might be empty.
...
llvm-svn: 72210
2009-05-21 09:52:38 +00:00
Chris Lattner
f160b5f9e1
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
llvm-svn: 71616
2009-05-13 00:55:26 +00:00
Chris Lattner
f4c68741d4
fix the second half of PR4006 and rdar://6807000 by treating
...
() as being either zero arguments or one empty argument depending
on situation.
llvm-svn: 69627
2009-04-20 21:08:10 +00:00
Chris Lattner
bf78da7b36
Fix PR3917: the location of a #line directive is the location of the first _.
...
llvm-svn: 69485
2009-04-18 22:29:33 +00:00
Chris Lattner
35dd5056fc
fix PR3927 by being more careful about the pp test for identifier.
...
llvm-svn: 69423
2009-04-18 06:44:18 +00:00
Chris Lattner
c17925da61
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.
llvm-svn: 69411
2009-04-18 01:13:56 +00:00
Chris Lattner
0af3ba1748
implement the microsoft/gnu "__COUNTER__" macro: rdar://4329310
...
llvm-svn: 68933
2009-04-13 01:29:17 +00:00
Chris Lattner
5ec5a30901
simplify code.
...
llvm-svn: 68825
2009-04-10 21:17:07 +00:00
Chris Lattner
51a53f92a5
fix PR3880, fixing a comma swallowing bug handling macros that only take
...
... arguments.
llvm-svn: 67706
2009-03-25 21:08:24 +00:00
Chris Lattner
beb9055000
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);
llvm-svn: 67705
2009-03-25 21:01:40 +00:00
Chris Lattner
cf35ce9d0d
add a callback for macro expansion, based on a patch by Paolo Bolzoni!
...
llvm-svn: 66799
2009-03-12 17:31:43 +00:00
Chris Lattner
fa217bda40
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.
llvm-svn: 66373
2009-03-08 08:08:45 +00:00
Chris Lattner
c25d8a7e30
improve compatibility with GCC 4.4, patch by Michel Salim (PR3697)
...
llvm-svn: 65884
2009-03-02 22:20:04 +00:00