]> granicus.if.org Git - clang/log
clang
13 years agoImplement AST import for Objective-C property implementations
Douglas Gregor [Tue, 7 Dec 2010 18:32:03 +0000 (18:32 +0000)]
Implement AST import for Objective-C property implementations
(@synthesize and @dynamic).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121159 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCast CachedLinkage to linkage to avoid "comparison between signed and unsigned intege...
Benjamin Kramer [Tue, 7 Dec 2010 15:51:48 +0000 (15:51 +0000)]
Cast CachedLinkage to linkage to avoid "comparison between signed and unsigned integer" warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121143 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement ASTImporter support for Objective-C category implementations.
Douglas Gregor [Tue, 7 Dec 2010 15:32:12 +0000 (15:32 +0000)]
Implement ASTImporter support for Objective-C category implementations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121139 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR8720 by printing an error message with a substring that the gcc testsuite searc...
Rafael Espindola [Tue, 7 Dec 2010 15:23:23 +0000 (15:23 +0000)]
Fix PR8720 by printing an error message with a substring that the gcc testsuite searches for.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121137 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
Jay Foad [Tue, 7 Dec 2010 08:25:34 +0000 (08:25 +0000)]
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121121 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExtern the ASTImporter to import @implementation declarations.
Douglas Gregor [Tue, 7 Dec 2010 01:26:03 +0000 (01:26 +0000)]
Extern the ASTImporter to import @implementation declarations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121097 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd Neon vreinterpret intrinsics.
Bob Wilson [Tue, 7 Dec 2010 01:12:51 +0000 (01:12 +0000)]
Add Neon vreinterpret intrinsics.
Radar 8681774.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121089 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake whitespace more consistent.
Bob Wilson [Tue, 7 Dec 2010 01:12:48 +0000 (01:12 +0000)]
Make whitespace more consistent.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121088 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix enumerator not handled in switch warnings.
Francois Pichet [Tue, 7 Dec 2010 00:55:57 +0000 (00:55 +0000)]
Fix enumerator not handled in switch warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121084 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoKill FullExpr, as it was not, in fact, used anywhere in the code base.
John McCall [Tue, 7 Dec 2010 00:47:33 +0000 (00:47 +0000)]
Kill FullExpr, as it was not, in fact, used anywhere in the code base.
I'm not opposed to the idea in concept, but there's no point in preserving
abortive experiments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121083 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse Sema::MaybeCreateExprWithCleanups() only after we've checked for a NULL/invalid...
Douglas Gregor [Tue, 7 Dec 2010 00:41:46 +0000 (00:41 +0000)]
Use Sema::MaybeCreateExprWithCleanups() only after we've checked for a NULL/invalid expression

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121081 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix compile error: comma at end of enumerator list.
Francois Pichet [Tue, 7 Dec 2010 00:21:00 +0000 (00:21 +0000)]
Fix compile error:  comma at end of enumerator list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121075 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoType traits intrinsic implementation: __is_base_of(T, U)
Francois Pichet [Tue, 7 Dec 2010 00:08:36 +0000 (00:08 +0000)]
Type traits intrinsic implementation: __is_base_of(T, U)
New AST node introduced: BinaryTypeTraitExpr; to be reused for more intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121074 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse atomic operations for libclang's object count tracking.
Douglas Gregor [Tue, 7 Dec 2010 00:05:48 +0000 (00:05 +0000)]
Use atomic operations for libclang's object count tracking.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121073 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoObjective-C pointer conversions to 'id' or qualified 'id' subsume
Douglas Gregor [Mon, 6 Dec 2010 22:09:19 +0000 (22:09 +0000)]
Objective-C pointer conversions to 'id' or qualified 'id' subsume
cv-qualification conversions. More specifically, there's an implicit
cv-qualification conversion (even one that drops qualifiers) when
converting to 'id' or qualified 'id'. Fixes <rdar://problem/8734046>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121047 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSplit out a function to do lvalue conversion on objects; this is basically
John McCall [Mon, 6 Dec 2010 20:48:59 +0000 (20:48 +0000)]
Split out a function to do lvalue conversion on objects;  this is basically
FunctionArrayLvalueConversion but without the function/array decay.  Generally
this is only appropriate for use sites that know the type of the expression
and thus that it can't be subject to the decays.

Also make sure we do lvalue-to-rvalue on the bases of ivar references.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121035 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoc/objc/c++'98 are basically done, but we want '0x support.
Chris Lattner [Mon, 6 Dec 2010 19:46:27 +0000 (19:46 +0000)]
c/objc/c++'98 are basically done, but we want '0x support.
Add "clang indent" as a possible project, we really really
need it. :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121030 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove a fixme which was fixed in a previous commit.
Argyrios Kyrtzidis [Mon, 6 Dec 2010 19:36:50 +0000 (19:36 +0000)]
Remove a fixme which was fixed in a previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121029 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse the unused merge() function, fixing an minor, unintended change I
Douglas Gregor [Mon, 6 Dec 2010 18:50:56 +0000 (18:50 +0000)]
Use the unused merge() function, fixing an minor, unintended change I
introduced in r121023.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121025 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRe-implement caching for the linkage calculation of declarations.
Douglas Gregor [Mon, 6 Dec 2010 18:36:25 +0000 (18:36 +0000)]
Re-implement caching for the linkage calculation of declarations.

My previous attempt at solving the compile-time problem with many
redeclarations of the same entity cached both linkage and visibility,
while this patch only tackles linkage. There are several reasons for
this difference:

  - Linkage is a language concept, and is evaluated many times during
    semantic analysis and codegen, while visibility is only a
    code-generation concept that is evaluated only once per (unique)
    declaration. Hence, we *must* optimize linkage calculations but
    don't need to optimize visibility computation.
  - Once we know the linkage of a declaration, subsequent
    redeclarations can't change that linkage. Hence, cache
    invalidation is far simpler than for visibility, where a later
    redeclaration can completely change the visibility.
  - We have 3 spare bits in Decl to store the linkage cache, so the
    cache doesn't increase the size of declarations. With the
    visibility+linkage cache, NamedDecl got larger.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121023 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDo unary conversions on vararg arguments and *then* special-case float.
John McCall [Mon, 6 Dec 2010 18:36:11 +0000 (18:36 +0000)]
Do unary conversions on vararg arguments and *then* special-case float.
Fixes PR8742.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121022 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse Sema's MarkDeclarationReferenced, which takes care of templates, instead of calli...
Argyrios Kyrtzidis [Mon, 6 Dec 2010 17:51:53 +0000 (17:51 +0000)]
Use Sema's MarkDeclarationReferenced, which takes care of templates, instead of calling Decl's setUsed directly.
Thanks to John for the hint!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121014 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse the source location of the parameter, when it makes sense, for diagnostics in...
Argyrios Kyrtzidis [Mon, 6 Dec 2010 17:51:50 +0000 (17:51 +0000)]
Use the source location of the parameter, when it makes sense, for diagnostics in HandleCleanupAttr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121013 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r120808, my previous implementation of caching for the linkage
Douglas Gregor [Mon, 6 Dec 2010 17:49:01 +0000 (17:49 +0000)]
Revert r120808, my previous implementation of caching for the linkage
and visibility of declarations, because it was extremely messy and it
increased the size of NamedDecl.

An improved implementation is forthcoming.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121012 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd BlocksAttr assert on __block specific
Fariborz Jahanian [Mon, 6 Dec 2010 17:28:17 +0000 (17:28 +0000)]
Add BlocksAttr assert on __block specific
routines.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121007 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUn-templatetize this method. It's definition is out of line in the .cpp file,
Chandler Carruth [Mon, 6 Dec 2010 09:23:57 +0000 (09:23 +0000)]
Un-templatetize this method. It's definition is out of line in the .cpp file,
so that's not a valid thing to do at all. Instead, switch to a ValueDecl
argument, the template isn't really necessary here.

When handling the types explicitly in the code, it becomes awkward to cerate
the CXXBaseOrMemberInitializer object in so many places. Re-flow the code to
calculate the Init expression first, and then create the initializer. If this
is too gross, we can factor the init expression logic into helper functions,
but it's not past my threshold yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120997 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename CXXExprWithTemporaries -> ExprWithCleanups; there's no theoretical
John McCall [Mon, 6 Dec 2010 08:20:24 +0000 (08:20 +0000)]
Rename CXXExprWithTemporaries -> ExprWithCleanups;  there's no theoretical
reason this is limited to C++, and it's certainly not limited to temporaries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120996 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago__block variables require us to evaluate the RHS of an assignment before
John McCall [Mon, 6 Dec 2010 06:10:02 +0000 (06:10 +0000)]
__block variables require us to evaluate the RHS of an assignment before
the LHS, or else the pointer might be invalid.  This is kindof dumb, but
go ahead and make sure we're doing that for l-value scalar assignment,
which fixes a miscompile of obj-c++.dg/block-seq.mm.

Leave a FIXME for how to solve this problem for agg __blocks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120992 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoClarify the logic for when to build an overloaded binop. In particular,
John McCall [Mon, 6 Dec 2010 05:26:58 +0000 (05:26 +0000)]
Clarify the logic for when to build an overloaded binop.  In particular,
build one when either of the operands calls itself type-dependent;
previously we were building when one of the operand types was dependent,
which is not always the same thing and which can lead to unfortunate
inconsistencies later.  Fixes PR8739.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120990 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMark SVal constructors 'explicit'.
Ted Kremenek [Sun, 5 Dec 2010 23:36:20 +0000 (23:36 +0000)]
Mark SVal constructors 'explicit'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120970 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename Environment::LookupExpr() to
Ted Kremenek [Sun, 5 Dec 2010 23:36:15 +0000 (23:36 +0000)]
Rename Environment::LookupExpr() to
Environment::lookupExpr() and move its implementation
out-of-line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120969 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove unused method GRState::LookupExpr().
Ted Kremenek [Sun, 5 Dec 2010 23:36:01 +0000 (23:36 +0000)]
Remove unused method GRState::LookupExpr().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120968 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a bug in the emission of __real/__imag l-values on scalar operands.
John McCall [Sun, 5 Dec 2010 02:00:02 +0000 (02:00 +0000)]
Fix a bug in the emission of __real/__imag l-values on scalar operands.
Fix a bug in the emission of complex compound assignment l-values.
Introduce a method to emit an expression whose value isn't relevant.
Make that method evaluate its operand as an l-value if it is one.
Fixes our volatile compliance in C++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120931 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPut each test in class-layout.cpp into a separate namespace.
Anders Carlsson [Sun, 5 Dec 2010 00:08:52 +0000 (00:08 +0000)]
Put each test in class-layout.cpp into a separate namespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120925 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a LayoutBase member function. No functionality change.
Anders Carlsson [Sat, 4 Dec 2010 23:59:48 +0000 (23:59 +0000)]
Add a LayoutBase member function. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120924 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReplace calls to AppendBytes with calls to AppendPadding when the bytes appended...
Anders Carlsson [Sat, 4 Dec 2010 23:53:18 +0000 (23:53 +0000)]
Replace calls to AppendBytes with calls to AppendPadding when the bytes appended are padding.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120922 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix rewriter to match recent changes in property ref
Fariborz Jahanian [Sat, 4 Dec 2010 21:22:13 +0000 (21:22 +0000)]
Fix rewriter to match recent changes in property ref
AST.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120919 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSilly special case: never load when dereferencing void*.
John McCall [Sat, 4 Dec 2010 12:43:24 +0000 (12:43 +0000)]
Silly special case:  never load when dereferencing void*.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120905 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFirst pass at implementing the intent of ANSI C DR106.
John McCall [Sat, 4 Dec 2010 12:29:11 +0000 (12:29 +0000)]
First pass at implementing the intent of ANSI C DR106.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120904 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agodyn_cast else unreachable -> cast
John McCall [Sat, 4 Dec 2010 09:57:16 +0000 (09:57 +0000)]
dyn_cast else unreachable -> cast

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120902 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMore anonymous struct/union redesign. This one deals with anonymous field used in...
Francois Pichet [Sat, 4 Dec 2010 09:14:42 +0000 (09:14 +0000)]
More anonymous struct/union redesign. This one deals with anonymous field used in a constructor initializer list:

struct X {
  X() : au_i1(123) {}
  union {
    int au_i1;
    float au_f1;
  };
};

clang will now deal with au_i1 explicitly as an IndirectFieldDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120900 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't crash when initializing a subaggregate in C from a property r-value.
John McCall [Sat, 4 Dec 2010 09:03:57 +0000 (09:03 +0000)]
Don't crash when initializing a subaggregate in C from a property r-value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120899 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake IgnoreParenLValueCasts skip __extension__ nodes like IgnoreParens().
John McCall [Sat, 4 Dec 2010 08:24:19 +0000 (08:24 +0000)]
Make IgnoreParenLValueCasts skip __extension__ nodes like IgnoreParens().
Abramo noticed this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120898 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSilence "comparison between signed and unsigned integer expressions" warnings.
Benjamin Kramer [Sat, 4 Dec 2010 08:16:05 +0000 (08:16 +0000)]
Silence "comparison between signed and unsigned integer expressions" warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120897 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove some defensive calls to EmitLoadOfPropertyRefLValue that shouldn't
John McCall [Sat, 4 Dec 2010 08:14:53 +0000 (08:14 +0000)]
Remove some defensive calls to EmitLoadOfPropertyRefLValue that shouldn't
be required, and then fix up some missing loads on overloaded-operator
paths which that exposed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120896 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen deciding whether to complain about the type of a boolean condition, use
John McCall [Sat, 4 Dec 2010 06:09:13 +0000 (06:09 +0000)]
When deciding whether to complain about the type of a boolean condition, use
the type of the expression *after* array/function decay.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120895 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoApparently properties.m does not always fail; make it.
John McCall [Sat, 4 Dec 2010 05:22:10 +0000 (05:22 +0000)]
Apparently properties.m does not always fail;  make it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120894 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix this test case on no-asserts builds by not trying to match the basic
John McCall [Sat, 4 Dec 2010 05:19:12 +0000 (05:19 +0000)]
Fix this test case on no-asserts builds by not trying to match the basic
block line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120893 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAlthough we currently have explicit lvalue-to-rvalue conversions, they're
John McCall [Sat, 4 Dec 2010 03:47:34 +0000 (03:47 +0000)]
Although we currently have explicit lvalue-to-rvalue conversions, they're
not actually frequently used, because ImpCastExprToType only creates a node
if the types differ.  So explicitly create an ICE in the lvalue-to-rvalue
conversion code in DefaultFunctionArrayLvalueConversion() as well as several
other new places, and consistently deal with the consequences throughout the
compiler.

In addition, introduce a new cast kind for loading an ObjCProperty l-value,
and make sure we emit those nodes whenever an ObjCProperty l-value appears
that's not on the LHS of an assignment operator.

This breaks a couple of rewriter tests, which I've x-failed until future
development occurs on the rewriter.

Ted Kremenek kindly contributed the analyzer workarounds in this patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120890 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTest case for the l-value base only being evaluated once.
John McCall [Sat, 4 Dec 2010 03:11:00 +0000 (03:11 +0000)]
Test case for the l-value base only being evaluated once.

Also, move the l-value emission code into CGObjC.cpp and teach it, for
completeness, to store away self for a super send.

Also, inline the super cases for property gets and sets and make them
use the correct result type for implicit getter/setter calls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120887 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoKill the KVC l-value kind and calculate the base expression when emitting
John McCall [Sat, 4 Dec 2010 02:32:38 +0000 (02:32 +0000)]
Kill the KVC l-value kind and calculate the base expression when emitting
the l-value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120884 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement -cl-std=
Peter Collingbourne [Sat, 4 Dec 2010 01:51:40 +0000 (01:51 +0000)]
Implement -cl-std=

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120882 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement -cl-mad-enable
Peter Collingbourne [Sat, 4 Dec 2010 01:51:33 +0000 (01:51 +0000)]
Implement -cl-mad-enable

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120881 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement -cl-fast-relaxed-math
Peter Collingbourne [Sat, 4 Dec 2010 01:51:23 +0000 (01:51 +0000)]
Implement -cl-fast-relaxed-math

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120880 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement -cl-unsafe-math-optimizations
Peter Collingbourne [Sat, 4 Dec 2010 01:51:14 +0000 (01:51 +0000)]
Implement -cl-unsafe-math-optimizations

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120879 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement -cl-finite-math-only
Peter Collingbourne [Sat, 4 Dec 2010 01:51:05 +0000 (01:51 +0000)]
Implement -cl-finite-math-only

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120878 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement -cl-single-precision-constant
Peter Collingbourne [Sat, 4 Dec 2010 01:50:56 +0000 (01:50 +0000)]
Implement -cl-single-precision-constant

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120877 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement -cl-opt-disable
Peter Collingbourne [Sat, 4 Dec 2010 01:50:45 +0000 (01:50 +0000)]
Implement -cl-opt-disable

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120876 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRefactor optimisation level code
Peter Collingbourne [Sat, 4 Dec 2010 01:50:36 +0000 (01:50 +0000)]
Refactor optimisation level code

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120875 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIntroduce CompilerInvocation::setLangDefaults function
Peter Collingbourne [Sat, 4 Dec 2010 01:50:27 +0000 (01:50 +0000)]
Introduce CompilerInvocation::setLangDefaults function

This patch refactors the CompilerInvocation code to introduce a
CompilerInvocation::setLangDefaults function, which can set up a
LangOptions with the defaults for a given language and language
standard.  This function is useful for non-command line based Clang
clients which need to set up a CompilerInvocation manually for a
specific language.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120874 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMinor refactoring; have BugReport::getRanges return a pair of iterator, no functional...
Argyrios Kyrtzidis [Sat, 4 Dec 2010 01:12:15 +0000 (01:12 +0000)]
Minor refactoring; have BugReport::getRanges return a pair of iterator, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120873 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMark functions referenced by 'cleanup' attribute as used. Fixes rdar://8728293
Argyrios Kyrtzidis [Sat, 4 Dec 2010 01:12:11 +0000 (01:12 +0000)]
Mark functions referenced by 'cleanup' attribute as used. Fixes rdar://8728293

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120872 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDiagnose when accessing property in a class method and
Fariborz Jahanian [Fri, 3 Dec 2010 23:37:08 +0000 (23:37 +0000)]
Diagnose when accessing property in a class method and
no property accessor class method to be found, instead of
crashing in IRGen. // rdar://8703553

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120855 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed typo.
Abramo Bagnara [Fri, 3 Dec 2010 21:39:42 +0000 (21:39 +0000)]
Fixed typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120839 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdded struct/class syntactic info for c++0x scoped enum.
Abramo Bagnara [Fri, 3 Dec 2010 18:54:17 +0000 (18:54 +0000)]
Added struct/class syntactic info for c++0x scoped enum.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120828 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd missing vext_f32 and vextq_f32 Neon intrinsics (Radar 8592601).
Bob Wilson [Fri, 3 Dec 2010 17:50:54 +0000 (17:50 +0000)]
Add missing vext_f32 and vextq_f32 Neon intrinsics (Radar 8592601).
For some reason these were not included in the list of Neon intrinsics in
ARM's documentation, so they didn't make it into Clang either.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120815 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for vmul_p8 Neon intrinsic. Radar 8446141.
Bob Wilson [Fri, 3 Dec 2010 17:29:39 +0000 (17:29 +0000)]
Add support for vmul_p8 Neon intrinsic.  Radar 8446141.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120812 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement caching for the linkage and visibility calculations of
Douglas Gregor [Fri, 3 Dec 2010 17:11:42 +0000 (17:11 +0000)]
Implement caching for the linkage and visibility calculations of
declarations.

The motivation for this patch is that linkage/visibility computations
are linear in the number of redeclarations of an entity, and we've run
into a case where a single translation unit has > 6500 redeclarations
of the same (unused!) external variable. Since each redeclaration
involves a linkage check, the resulting quadratic behavior makes Clang
slow to a crawl. With this change, a simple test with 512
redeclarations of a variable syntax-checks ~20x faster than
before.

That said, I hate this change, and will probably end up reverting it
in a few hours. Reasons to hate it:
  - It makes NamedDecl larger, since we don't have enough free bits in
  Decl to squeeze in the extra information about caching.
  - There are way too many places where we need to invalidate this
  cache, because the visibility of a declaration can change due to
  redeclarations (!). Despite self-hosting and passing the testsuite,
  I have no confidence that I've found all of places where this cache
  needs to be invalidated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120808 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a separate name field to the Neon intrinsic table.
Bob Wilson [Fri, 3 Dec 2010 17:10:24 +0000 (17:10 +0000)]
Add a separate name field to the Neon intrinsic table.
This is currently the same as a lowercase version of the record name, but
it will allow us to have multiple records with the same name, which is
needed for intrinsics (e.g., vmul and vmull) that are implemented
differently depending on the type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120807 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a separate rightShift flag instead of reusing the existing "poly" variable
Bob Wilson [Fri, 3 Dec 2010 17:10:22 +0000 (17:10 +0000)]
Add a separate rightShift flag instead of reusing the existing "poly" variable
to distinguish vsri/vsli.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120806 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate analyzer build.
Ted Kremenek [Fri, 3 Dec 2010 07:52:43 +0000 (07:52 +0000)]
Update analyzer build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120802 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd some warning messages about invalid use of common/nocommon attributes.
Eric Christopher [Fri, 3 Dec 2010 06:58:14 +0000 (06:58 +0000)]
Add some warning messages about invalid use of common/nocommon attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120799 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd test case for r120795.
Ted Kremenek [Fri, 3 Dec 2010 06:53:12 +0000 (06:53 +0000)]
Add test case for r120795.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120796 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix an insidious bug in BugReporter where
Ted Kremenek [Fri, 3 Dec 2010 06:52:30 +0000 (06:52 +0000)]
Fix an insidious bug in BugReporter where
a node in the trimmed graph might not always
correctly map back to the original error node.
This could cause a crash in some cases when
flagging memory leaks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120795 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAlso include the pointer address of the ExplodedNode
Ted Kremenek [Fri, 3 Dec 2010 06:52:26 +0000 (06:52 +0000)]
Also include the pointer address of the ExplodedNode
when generating DOT output for an ExplodedGraph.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120794 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAlso show notes about the taken path in TextPathDiagnostics.
Argyrios Kyrtzidis [Fri, 3 Dec 2010 02:03:26 +0000 (02:03 +0000)]
Also show notes about the taken path in TextPathDiagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120783 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove leftover code and use the text path diagnostic client even without a specified...
Argyrios Kyrtzidis [Fri, 3 Dec 2010 01:17:19 +0000 (01:17 +0000)]
Remove leftover code and use the text path diagnostic client even without a specified output file since
it just uses diagnostic notes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120773 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a flag to control the "indirection of non-volatile null pointer will be
Nick Lewycky [Fri, 3 Dec 2010 01:10:02 +0000 (01:10 +0000)]
Add a flag to control the "indirection of non-volatile null pointer will be
deleted, not trap" warning. Fixed PR8729. Patch by Elias Pipping!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120771 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIntroduce TextPathDiagnostics, a simple PathDiagnosticClient that outputs as diagnost...
Argyrios Kyrtzidis [Fri, 3 Dec 2010 00:58:14 +0000 (00:58 +0000)]
Introduce TextPathDiagnostics, a simple PathDiagnosticClient that outputs as diagnostic notes
the sequence of events; useful for testing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120770 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHandle any number of SourceRanges inside BugReporter::FlushReport.
Argyrios Kyrtzidis [Fri, 3 Dec 2010 00:58:10 +0000 (00:58 +0000)]
Handle any number of SourceRanges inside BugReporter::FlushReport.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120769 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename Create[*]DiagnosticClient -> create[*]DiagnosticClient.
Argyrios Kyrtzidis [Fri, 3 Dec 2010 00:58:08 +0000 (00:58 +0000)]
Rename Create[*]DiagnosticClient -> create[*]DiagnosticClient.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120768 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for "_lane" variants of VMUL, VMLA, and VMLS Neon intrinsics.
Bob Wilson [Fri, 3 Dec 2010 00:34:21 +0000 (00:34 +0000)]
Add support for "_lane" variants of VMUL, VMLA, and VMLS Neon intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120765 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix diagnostic for reporting bad escape sequence.
Ted Kremenek [Fri, 3 Dec 2010 00:09:56 +0000 (00:09 +0000)]
Fix diagnostic for reporting bad escape sequence.
Patch by Paul Curtis!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120759 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReflow to a style doug prefers, increasing indentation :-)
Chris Lattner [Thu, 2 Dec 2010 22:52:04 +0000 (22:52 +0000)]
Reflow to a style doug prefers, increasing indentation :-)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120746 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen we're performing an explicit cast of some sort, don't complain
Douglas Gregor [Thu, 2 Dec 2010 21:47:04 +0000 (21:47 +0000)]
When we're performing an explicit cast of some sort, don't complain
about deprecated Objective-C pointer conversions. Plus, make sure to
actually set an appropriate AssignmentAction when performing an
implicit conversion from an InitializationSequence. Fixes regressions
in the GCC DejaGNU testsuite.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120744 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImprove on objc diagnostics. // rdar://8721692
Fariborz Jahanian [Thu, 2 Dec 2010 21:00:16 +0000 (21:00 +0000)]
Improve on objc diagnostics. // rdar://8721692

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120737 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMerge transparent union types using member's unqualified type
Peter Collingbourne [Thu, 2 Dec 2010 21:00:06 +0000 (21:00 +0000)]
Merge transparent union types using member's unqualified type

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120736 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix range in printf warnings for invalid conversion specifiers.
Ted Kremenek [Thu, 2 Dec 2010 20:57:51 +0000 (20:57 +0000)]
Fix range in printf warnings for invalid conversion specifiers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120735 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMerge transparent union types using member's canonical param type
Peter Collingbourne [Thu, 2 Dec 2010 20:02:29 +0000 (20:02 +0000)]
Merge transparent union types using member's canonical param type

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120729 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix inverted return value in the ASTImporter. No matter how much LLVM
Douglas Gregor [Thu, 2 Dec 2010 19:33:37 +0000 (19:33 +0000)]
Fix inverted return value in the ASTImporter. No matter how much LLVM
code I wrote, returning "true" on error is still unnatural.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120727 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed source range for MS asm statement.
Abramo Bagnara [Thu, 2 Dec 2010 18:34:55 +0000 (18:34 +0000)]
Fixed source range for MS asm statement.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120724 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agofix PR8726 by teaching the aggregate init optimization code to handle
Chris Lattner [Thu, 2 Dec 2010 18:29:00 +0000 (18:29 +0000)]
fix PR8726 by teaching the aggregate init optimization code to handle
structs with references in them correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120722 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTest for // rdar://8594790
Fariborz Jahanian [Thu, 2 Dec 2010 17:58:10 +0000 (17:58 +0000)]
Test for // rdar://8594790

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120717 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAttempt to fix linux buildbots by adding -ffreestanding for arm_neon tests.
Bob Wilson [Thu, 2 Dec 2010 17:31:16 +0000 (17:31 +0000)]
Attempt to fix linux buildbots by adding -ffreestanding for arm_neon tests.
The arm_neon.h header includes stdint.h and it picks up the system header
without -ffreestanding.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120716 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIR Gen. part of API support for __block cxx
Fariborz Jahanian [Thu, 2 Dec 2010 17:02:11 +0000 (17:02 +0000)]
IR Gen. part of API support for __block cxx
objects imported into blocks. //rdar://8594790.
Will have a test case coming (as well as one
sent to llvm test suite).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120713 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDo not change the size of LookupResult::Filter based on the NDEBUG
Douglas Gregor [Thu, 2 Dec 2010 16:19:31 +0000 (16:19 +0000)]
Do not change the size of LookupResult::Filter based on the NDEBUG
macri; the extra bool fits into padding anyway.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120708 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove NDEBUG-controlled extra data from
Douglas Gregor [Thu, 2 Dec 2010 16:14:14 +0000 (16:14 +0000)]
Remove NDEBUG-controlled extra data from
TemplateArgumentLocInfo. Unfortunately, this means that we lose some
internal consistency checking when building a debug Clang. However,
having data structures change size/layout depending on NDEBUG causes
pain for clients of the Clang API.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120706 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTweaks.
John McCall [Thu, 2 Dec 2010 10:37:08 +0000 (10:37 +0000)]
Tweaks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120701 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoObjC support in the XML dumper.
John McCall [Thu, 2 Dec 2010 10:24:56 +0000 (10:24 +0000)]
ObjC support in the XML dumper.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120700 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMerge ValueManager into SValBuilder.
Ted Kremenek [Thu, 2 Dec 2010 07:49:45 +0000 (07:49 +0000)]
Merge ValueManager into SValBuilder.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120696 91177308-0d34-0410-b5e6-96231b3b80d8