]> granicus.if.org Git - clang/log
clang
13 years agoProperly add chained template specializations.
Argyrios Kyrtzidis [Thu, 28 Oct 2010 07:38:47 +0000 (07:38 +0000)]
Properly add chained template specializations.

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

13 years agoFix the re-serializing decls in a chained PCH mechanism.
Argyrios Kyrtzidis [Thu, 28 Oct 2010 07:38:45 +0000 (07:38 +0000)]
Fix the re-serializing decls in a chained PCH mechanism.

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

13 years agoUse the ASTMutationListener to track added template specializations in a chained...
Argyrios Kyrtzidis [Thu, 28 Oct 2010 07:38:42 +0000 (07:38 +0000)]
Use the ASTMutationListener to track added template specializations in a chained PCH.

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

13 years agoAbandon the type-visibility optimization for functions. GCC doesn't do it,
John McCall [Thu, 28 Oct 2010 07:07:52 +0000 (07:07 +0000)]
Abandon the type-visibility optimization for functions.  GCC doesn't do it,
and it's too much trouble to push for.  Fixes PR8478.

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

13 years agoWhen computing visibility, use the latest declaration's explicit visibility
John McCall [Thu, 28 Oct 2010 04:18:25 +0000 (04:18 +0000)]
When computing visibility, use the latest declaration's explicit visibility
attribute.

Part of rdar://problem/8595231

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

13 years agoAdd test case for <rdar://problem/8356342>.
Ted Kremenek [Thu, 28 Oct 2010 02:50:32 +0000 (02:50 +0000)]
Add test case for <rdar://problem/8356342>.

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

13 years agoImplement the newest status quo for method override checking. The idea now
John McCall [Thu, 28 Oct 2010 02:34:38 +0000 (02:34 +0000)]
Implement the newest status quo for method override checking.  The idea now
is that we need more information to decide the exact conditions for whether
one ObjCObjectPointer is an acceptable return/parameter override for another,
so we're going to disable that entire class of warning for now.  The
"forward developement" warning category, -Wmethod-signatures, can receive
unrestricted feature work, and when we're happy with how it acts, we'll
turn it on by default.

This is a pretty conservative change, and nobody's totally content with it.

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

13 years agomake it really clear that vla != flexible arrays
Chris Lattner [Thu, 28 Oct 2010 02:20:32 +0000 (02:20 +0000)]
make it really clear that vla != flexible arrays

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

13 years agoDon't warn about unamed bitfield ivars in the ObjCUnusedIvarsChecker. Fixes <rdar...
Ted Kremenek [Thu, 28 Oct 2010 02:16:22 +0000 (02:16 +0000)]
Don't warn about unamed bitfield ivars in the ObjCUnusedIvarsChecker.  Fixes <rdar://problem/8481311>.

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

13 years agoAhem. Add rest of D and Q registers to ARM inline asm handling.
Dale Johannesen [Thu, 28 Oct 2010 01:05:37 +0000 (01:05 +0000)]
Ahem.  Add rest of D and Q registers to ARM inline asm handling.

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

13 years agoTest passes on Darwin; try to XFAIL on freebsd, linux, xp/msvc9.
Stuart Hastings [Thu, 28 Oct 2010 00:47:58 +0000 (00:47 +0000)]
Test passes on Darwin; try to XFAIL on freebsd, linux, xp/msvc9.

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

13 years agoAdd D and Q register names to ARM inline asm handling.
Dale Johannesen [Wed, 27 Oct 2010 23:34:42 +0000 (23:34 +0000)]
Add D and Q register names to ARM inline asm handling.
No aliasing is needed, these work as given in the BE.

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

13 years agoFix context info for enums.
Devang Patel [Wed, 27 Oct 2010 23:23:58 +0000 (23:23 +0000)]
Fix context info for enums.
Radar 8595129

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

13 years agosmall tweaks to reflect statements of what really ever shipped. ABI is, and has...
Blaine Garst [Wed, 27 Oct 2010 22:59:01 +0000 (22:59 +0000)]
small tweaks to reflect statements of what really ever shipped.  ABI is, and has been, accurate for what we ship.

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

13 years agoDon't override explicit visibility attributes on class members with
John McCall [Wed, 27 Oct 2010 22:31:22 +0000 (22:31 +0000)]
Don't override explicit visibility attributes on class members with
type-based visibility.

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

13 years agoMake AST deserialization for class template specializations lazier, by
Douglas Gregor [Wed, 27 Oct 2010 22:21:36 +0000 (22:21 +0000)]
Make AST deserialization for class template specializations lazier, by
not loading the specializations of a class template until some AST
consumer needs them.

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

13 years agoreconcile missing typos & delete obsolete pre-SnowLeopard section w.r.t. prior reposi...
Blaine Garst [Wed, 27 Oct 2010 21:22:46 +0000 (21:22 +0000)]
reconcile missing typos & delete obsolete pre-SnowLeopard section w.r.t. prior repository for this document

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

13 years agoRestore r117403 (fixing IR gen for bool atomics), this time being less
John McCall [Wed, 27 Oct 2010 20:58:56 +0000 (20:58 +0000)]
Restore r117403 (fixing IR gen for bool atomics), this time being less
aggressive about the form we expect bools to be in.  I don't really have
time to fix all the sources right now.

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

13 years agoDecay array/function types of a statement-expression.
Fariborz Jahanian [Wed, 27 Oct 2010 20:44:00 +0000 (20:44 +0000)]
Decay array/function types of a statement-expression.
// rdar: // 8600553.

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

13 years agoLazily load the next friend in the chain of FriendDecls, to eliminate
Douglas Gregor [Wed, 27 Oct 2010 20:23:41 +0000 (20:23 +0000)]
Lazily load the next friend in the chain of FriendDecls, to eliminate
some excessive recursion and deserialization.

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

13 years agopatch to do array-to-pointer conversion in a
Fariborz Jahanian [Wed, 27 Oct 2010 20:10:28 +0000 (20:10 +0000)]
patch to do array-to-pointer conversion in a
statement-expression. // rdar: //8600553

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

13 years agoLazily load the "next" namespace in the chain of NamespaceDecls, to
Douglas Gregor [Wed, 27 Oct 2010 19:49:05 +0000 (19:49 +0000)]
Lazily load the "next" namespace in the chain of NamespaceDecls, to
eliminate some excessive recursion and deserialization.

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

13 years agoIntroduce libclang-level options for C++ precompiled preambles,
Douglas Gregor [Wed, 27 Oct 2010 17:24:53 +0000 (17:24 +0000)]
Introduce libclang-level options for C++ precompiled preambles,
separating out chaining precompiled preambles from non-chaining ones.

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

13 years agoRevert r117403 as it caused PR8480.
Rafael Espindola [Wed, 27 Oct 2010 17:13:49 +0000 (17:13 +0000)]
Revert r117403 as it caused PR8480.

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

13 years agoDo the guarding of instantiated static data members
Fariborz Jahanian [Wed, 27 Oct 2010 16:21:54 +0000 (16:21 +0000)]
Do the guarding of instantiated static data members
on if its linkage is weak. Currently this is the
case but may change in the future. (part of radar
8562966).

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

13 years agoDocument how source ranges work
Douglas Gregor [Wed, 27 Oct 2010 16:02:28 +0000 (16:02 +0000)]
Document how source ranges work

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

13 years agoAdd an environment variable that allows us to turn off threading in c-index-test
Douglas Gregor [Wed, 27 Oct 2010 16:00:01 +0000 (16:00 +0000)]
Add an environment variable that allows us to turn off threading in c-index-test

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

13 years agoRemove redundant test
Douglas Gregor [Wed, 27 Oct 2010 14:20:34 +0000 (14:20 +0000)]
Remove redundant test

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

13 years agoAlso devirtualize calls to a member functions where the containing class has been...
Anders Carlsson [Wed, 27 Oct 2010 13:34:43 +0000 (13:34 +0000)]
Also devirtualize calls to a member functions where the containing class has been marked final.

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

13 years agoIf a virtual member function has the 'final' attribute, we can devirtualize calls...
Anders Carlsson [Wed, 27 Oct 2010 13:28:46 +0000 (13:28 +0000)]
If a virtual member function has the 'final' attribute, we can devirtualize calls to it.

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

13 years agoAdd helper for extracting the CXXRecordDecl for the implicit argument to
Chandler Carruth [Wed, 27 Oct 2010 06:55:41 +0000 (06:55 +0000)]
Add helper for extracting the CXXRecordDecl for the implicit argument to
a member call expression. This has proved to be a common pattern for users of
RecursiveASTVisitor.

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

13 years agoIf visiting RHS causes us to finish 'Block', e.g. the RHS is a StmtExpr
Zhongxing Xu [Wed, 27 Oct 2010 03:23:10 +0000 (03:23 +0000)]
If visiting RHS causes us to finish 'Block', e.g. the RHS is a StmtExpr
containing a DoStmt, and the LHS doesn't create a new block, then we should
return RBlock.  Otherwise we'll incorrectly return NULL.

Also relax an assertion in VisitWhileStmt(). Reset 'Block' when it is finished.

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

13 years agoAvoid calculating linkage until the more obvious checks have run when
John McCall [Wed, 27 Oct 2010 01:41:35 +0000 (01:41 +0000)]
Avoid calculating linkage until the more obvious checks have run when
deciding whether to queue a decl for unused-declaration warnings.

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

13 years agoDon't compute linkage for a declaration as part of the #pragma weak
John McCall [Wed, 27 Oct 2010 00:59:00 +0000 (00:59 +0000)]
Don't compute linkage for a declaration as part of the #pragma weak
forward-declaration support unless there's really a mapping for that
name.

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

13 years agoDisable this test until we figure out what madness it causes
Douglas Gregor [Tue, 26 Oct 2010 23:34:31 +0000 (23:34 +0000)]
Disable this test until we figure out what madness it causes

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

13 years agoAdd support for code completion on stdin.
Dan Gohman [Tue, 26 Oct 2010 23:21:25 +0000 (23:21 +0000)]
Add support for code completion on stdin.

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

13 years agoPatch to provide guard when initializing instances
Fariborz Jahanian [Tue, 26 Oct 2010 22:47:47 +0000 (22:47 +0000)]
Patch to provide guard when initializing instances
of static data member of a class template.
Fixes //rdar :// 8562966 and pr8409.

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

13 years agoExtract procedures to do scalar-to-memory and memory-to-scalar conversions
John McCall [Tue, 26 Oct 2010 22:09:15 +0000 (22:09 +0000)]
Extract procedures to do scalar-to-memory and memory-to-scalar conversions
in IR gen, and use those to fix a correctness issue with bool atomic
intrinsics.  rdar://problem/8461234

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

13 years agoSign
Douglas Gregor [Tue, 26 Oct 2010 21:25:18 +0000 (21:25 +0000)]
Sign

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

13 years agoSimplify this code: don't check for the same error two
Dan Gohman [Tue, 26 Oct 2010 21:13:51 +0000 (21:13 +0000)]
Simplify this code: don't check for the same error two
different ways. Check once, and use an assert to handle
consistency checking.

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

13 years agogetOrCreateContentCache never returns null, so overrideFileContents
Dan Gohman [Tue, 26 Oct 2010 20:47:28 +0000 (20:47 +0000)]
getOrCreateContentCache never returns null, so overrideFileContents
doesn't need its return value.

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

13 years agoI hate this test
Douglas Gregor [Tue, 26 Oct 2010 19:36:20 +0000 (19:36 +0000)]
I hate this test

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

13 years agoFactor out the code for emitting code to load vtable pointer members
Dan Gohman [Tue, 26 Oct 2010 18:44:08 +0000 (18:44 +0000)]
Factor out the code for emitting code to load vtable pointer members
so that it's done in one place.

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

13 years agoSomething is seriously wonky with this test
Douglas Gregor [Tue, 26 Oct 2010 18:25:19 +0000 (18:25 +0000)]
Something is seriously wonky with this test

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

13 years agoFix silly typo
Douglas Gregor [Tue, 26 Oct 2010 17:32:59 +0000 (17:32 +0000)]
Fix silly typo

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

13 years agoTeach typo correction not to return the same keyword that matches a
Douglas Gregor [Tue, 26 Oct 2010 17:18:00 +0000 (17:18 +0000)]
Teach typo correction not to return the same keyword that matches a
typo. This can happen with context-sensitive keywords like "super",
when typo correction didn't know that "super" wasn't permitted in this
context.

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

13 years agoOptimize field space usage in CompoundStmt, LabelStmt, Expr, and CastExpr.
John McCall [Tue, 26 Oct 2010 08:39:16 +0000 (08:39 +0000)]
Optimize field space usage in CompoundStmt, LabelStmt, Expr, and CastExpr.
There's probably still significant padding waste on x86-64 UNIXen, but
the difference in 32-bit compiles should be significant.

There are a lot of Expr nodes left that could lose a word this way.

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

13 years agoNo really, we don't have a retain/release system for statements/expressions
John McCall [Tue, 26 Oct 2010 07:05:15 +0000 (07:05 +0000)]
No really, we don't have a retain/release system for statements/expressions
anymore.

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

13 years agoCookie crumbs.
John McCall [Tue, 26 Oct 2010 06:41:10 +0000 (06:41 +0000)]
Cookie crumbs.

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

13 years agoActually, that doesn't really work, and anyway we should choose
John McCall [Tue, 26 Oct 2010 06:40:27 +0000 (06:40 +0000)]
Actually, that doesn't really work, and anyway we should choose
conversion to id over conversion to void*.

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

13 years agoConsider conversions of Objective-C pointers to 'id' to be basically of
John McCall [Tue, 26 Oct 2010 06:23:29 +0000 (06:23 +0000)]
Consider conversions of Objective-C pointers to 'id' to be basically of
the same rank as conversions of normal pointers to 'void*'.

Also, resurrect a test case.

Fixes rdar://problem/8592139

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

13 years agoDelay complete-type checking for arguments to no-prototype functions
Douglas Gregor [Tue, 26 Oct 2010 05:45:40 +0000 (05:45 +0000)]
Delay complete-type checking for arguments to no-prototype functions
until after we've checked/promoted the argument. Hopefully fixes the
Emacs regression due to my recent change that expanded type-checking
in the presence of K&R function definitions.

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

13 years agoA couple of tweaks to the visibility rules:
John McCall [Tue, 26 Oct 2010 04:59:26 +0000 (04:59 +0000)]
A couple of tweaks to the visibility rules:
  - tags with C linkage should ignore visibility=hidden
  - functions and variables with explicit visibility attributes should
    ignore the linkage of their types
Either of these should be sufficient to fix PR8457.

Also, FileCheck-ize a test case.

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

13 years agoPending further discussion, re-enable warnings for Objective C
John McCall [Tue, 26 Oct 2010 00:53:53 +0000 (00:53 +0000)]
Pending further discussion, re-enable warnings for Objective C
covariant/contravariant overrides and implementations, but do so under
control of a new flag (-Wno-objc-covariant-overrides, which yes does cover
contravariance too).

*At least* the covariance cases will probably be enabled by default shortly,
but that's not totally uncontroversial.

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

13 years agoWhen de-serializing a type that is supposed to be canonical, call
Douglas Gregor [Tue, 26 Oct 2010 00:51:02 +0000 (00:51 +0000)]
When de-serializing a type that is supposed to be canonical, call
getCanonicalType() to make sure that the type we got back is actually
canonical. This is the case for most types, which always build a
canonical type when given canonical components. However, some types that
involve expressions in their canonicalization (e.g., array types with
dependent sizes) don't always build canonical types from canonical
components, because there is no such thing as a "canonical"
expression. Therefore, we do this extra mapping to ensure that the
canonical types we store are actually canonical.

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

13 years agoFix lazy symbolication bug in RegionStore involving fields of global variables. ...
Ted Kremenek [Tue, 26 Oct 2010 00:06:17 +0000 (00:06 +0000)]
Fix lazy symbolication bug in RegionStore involving fields of global variables.  When invalidated, the entire
globals memory space gets assigned a symbolic value, but that value was not being used for lazy symbolication
of fields of globals.  This could result in cases where bogus null dereferences were being reported.

Fixes PR 8440.

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

13 years agoMove 'includeGlobals' as a field into ClusterAnalysis.
Ted Kremenek [Tue, 26 Oct 2010 00:06:15 +0000 (00:06 +0000)]
Move 'includeGlobals' as a field into ClusterAnalysis.

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

13 years agoTweak null dereference checker to give better diagnostics for null dereferences resul...
Ted Kremenek [Tue, 26 Oct 2010 00:06:13 +0000 (00:06 +0000)]
Tweak null dereference checker to give better diagnostics for null dereferences resulting from array accesses.

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

13 years agoAdd infrastructure for emitting TBAA metadata with the "constant" flag.
Dan Gohman [Mon, 25 Oct 2010 23:51:23 +0000 (23:51 +0000)]
Add infrastructure for emitting TBAA metadata with the "constant" flag.

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

13 years agoPatch for mis-compile of statement expressions with
Fariborz Jahanian [Mon, 25 Oct 2010 23:27:26 +0000 (23:27 +0000)]
Patch for mis-compile of statement expressions with
non-trivial copy constructors. // rdar: //8540501.
A test will be added to llvm nightly tests.

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

13 years agoTrim an unnecessary #include.
Dan Gohman [Mon, 25 Oct 2010 21:59:29 +0000 (21:59 +0000)]
Trim an unnecessary #include.

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

13 years agoFactor out the code for creating the Root and Char nodes, so that
Dan Gohman [Mon, 25 Oct 2010 21:48:30 +0000 (21:48 +0000)]
Factor out the code for creating the Root and Char nodes, so that
they can be used outside of the main getTBAAInfo function.

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

13 years agoAdd and describe a quick script to migrate gcc builtins that clang doesn't
Eric Christopher [Mon, 25 Oct 2010 21:17:59 +0000 (21:17 +0000)]
Add and describe a quick script to migrate gcc builtins that clang doesn't
know about to the default APIs for x86 vector operations.

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

13 years agoLook through the address-of operator to find the function being
Douglas Gregor [Mon, 25 Oct 2010 20:48:33 +0000 (20:48 +0000)]
Look through the address-of operator to find the function being
called. Fixes another aspect of PR8314.

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

13 years agoWhen we're calling a function that we know based on its K&R-style
Douglas Gregor [Mon, 25 Oct 2010 20:39:23 +0000 (20:39 +0000)]
When we're calling a function that we know based on its K&R-style
function definition, we should still use a prototype to type-check and
convert the function arguments, if such a prototype exists. Fixes
PR8314.

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

13 years agoAdd check for UnknownVals for mutexes in ObjCAtSyncChecker. Fixes crash reported...
Ted Kremenek [Mon, 25 Oct 2010 20:20:56 +0000 (20:20 +0000)]
Add check for UnknownVals for mutexes in ObjCAtSyncChecker.  Fixes crash reported in PR 8458.

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

13 years agoOnly warn for mismatched types in Objective-C methods when they are incompatible...
David Chisnall [Mon, 25 Oct 2010 17:23:52 +0000 (17:23 +0000)]
Only warn for mismatched types in Objective-C methods when they are incompatible, not when they are simply different.  Now we test whether the difference in types breaks the principle of substitutability, rather than whether they are different.

A common idiom in Objective-C is to provide a definition of a method in a subclass that returns a more-specified version of an object than the superclass.  This does not violate the principle of substitutability, because you can always use the object returned by the subclass anywhere that you could use the type returned by the superclass.  It was, however, generating warnings with clang, leading people to believe that semantically correct code was incorrect and requiring less accurate type specification and explicit down-casts (neither of which is a good thing to encourage).

This change ensures that any method definition has parameter and return types that make it accept anything that something conforming to the declaration may pass and return something that the caller will expect, but allows stricter definitions.

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

13 years agoImprove the tracking of source locations for parentheses in constructor calls.
Chandler Carruth [Mon, 25 Oct 2010 08:47:36 +0000 (08:47 +0000)]
Improve the tracking of source locations for parentheses in constructor calls.
This adds them where missing, and traces them through PCH. We fix at least one
bug in the extents found by the Index library, and make a lot of refactoring
tools which care about the exact formulation of a constructor call easier to
write. Also some minor cleanups to more consistently follow the friend pattern
instead of the setter pattern when rebuilding a serialized AST.

Patch originally by Samuel Benzaquen.

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

13 years agoAdded generation of destructors for member constant size arrays.
Marcin Swiderski [Mon, 25 Oct 2010 07:05:54 +0000 (07:05 +0000)]
Added generation of destructors for member constant size arrays.
There's only one destructor call generated for each not empty array (at least for now this should be enough).

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

13 years agoAdded generation of destructors for constant size arrays.
Marcin Swiderski [Mon, 25 Oct 2010 07:00:40 +0000 (07:00 +0000)]
Added generation of destructors for constant size arrays.
There's only one destructor call generated for each not empty array (at least for now this should be enough).

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

13 years agoImplement GNU C extension: two types are compatible if they appear
Peter Collingbourne [Sun, 24 Oct 2010 18:30:18 +0000 (18:30 +0000)]
Implement GNU C extension: two types are compatible if they appear
as a function argument, one of the types is a transparent union type
and the other type is compatible with a union member

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

13 years agoKeep track in chained PCH of implicit members that were added after the definition...
Argyrios Kyrtzidis [Sun, 24 Oct 2010 17:26:54 +0000 (17:26 +0000)]
Keep track in chained PCH of implicit members that were added after the definition was completed.

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

13 years agoStart fleshing out ASTMutationListener; notify when a tag definition is completed.
Argyrios Kyrtzidis [Sun, 24 Oct 2010 17:26:50 +0000 (17:26 +0000)]
Start fleshing out ASTMutationListener; notify when a tag definition is completed.

In that case a chained PCH will record the updates to the DefinitionData pointer of forward references.
If a forward reference mutated into a definition re-write it into the chained PCH, this is too big of a change.

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

13 years agoIntroduce a DeclsToRewrite field in ASTWrite, used for collecting the decls that...
Argyrios Kyrtzidis [Sun, 24 Oct 2010 17:26:46 +0000 (17:26 +0000)]
Introduce a DeclsToRewrite field in ASTWrite, used for collecting the decls that will be replaced in the chained PCH.

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

13 years agoSome method renaming, no functionality change.
Argyrios Kyrtzidis [Sun, 24 Oct 2010 17:26:43 +0000 (17:26 +0000)]
Some method renaming, no functionality change.

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

13 years agoRefactoring.
Argyrios Kyrtzidis [Sun, 24 Oct 2010 17:26:40 +0000 (17:26 +0000)]
Refactoring.
- Pass around RecordDataImpl instead of the concrete RecordData so that any SmallVector can be used.
- Move ASTDeclWriter::WriteCXXDefinitionData to ASTWriter::AddCXXDefinitionData.

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

13 years agoPut the mechanism in place to track modifications in an AST entity that were committe...
Argyrios Kyrtzidis [Sun, 24 Oct 2010 17:26:36 +0000 (17:26 +0000)]
Put the mechanism in place to track modifications in an AST entity that were committed after
its initial creation/deserialization and store the changes in a chained PCH.

The idea is that the AST entities call methods on the ASTMutationListener to give notifications
of changes; the PCHWriter implements the ASTMutationListener interface and stores the incremental changes
of the updated entity. WIP

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

13 years agoSimplify and "robust-ify" the way that CXXRecord references point to the definition...
Argyrios Kyrtzidis [Sun, 24 Oct 2010 17:26:31 +0000 (17:26 +0000)]
Simplify and "robust-ify" the way that CXXRecord references point to the definition data when loaded from PCH.

Temporary disable 'test/PCH/chain-cxx.cpp' until a better way to fix it is in place.

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

13 years agoMinor refactoring; Pull reading/writing DefinitionData out into a function.
Argyrios Kyrtzidis [Sun, 24 Oct 2010 17:26:27 +0000 (17:26 +0000)]
Minor refactoring; Pull reading/writing DefinitionData out into a function.

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

13 years agoFix tyop.
Anders Carlsson [Sun, 24 Oct 2010 12:51:00 +0000 (12:51 +0000)]
Fix tyop.

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

13 years ago- Fixed subexpressions evaluation order for binary operators to match order in code...
Marcin Swiderski [Sun, 24 Oct 2010 08:21:40 +0000 (08:21 +0000)]
- Fixed subexpressions evaluation order for binary operators to match order in code generated with the compiler,
- Fixed test cases for unreachable code warnings produced by Sema.

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

13 years agoMove the "used but marked unused" warning behind a special warning flag for now.
Anders Carlsson [Sun, 24 Oct 2010 04:28:00 +0000 (04:28 +0000)]
Move the "used but marked unused" warning behind a special warning flag for now.

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

13 years agoC++ [basic.scope.hiding] allows an ordinary name to hide a non-tag
Douglas Gregor [Sat, 23 Oct 2010 16:06:17 +0000 (16:06 +0000)]
C++ [basic.scope.hiding] allows an ordinary name to hide a non-tag
name *in the same scope*, but not across scopes. Implement the
highlighted condition.

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

13 years agoUpdate remaining attribute macros to new style.
Chandler Carruth [Sat, 23 Oct 2010 08:44:57 +0000 (08:44 +0000)]
Update remaining attribute macros to new style.

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

13 years agoUpdate to use 'LLVM_*' macro names for attributes.
Chandler Carruth [Sat, 23 Oct 2010 08:21:37 +0000 (08:21 +0000)]
Update to use 'LLVM_*' macro names for attributes.

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

13 years agoWarn if a variable marked with the "unused" attribute is used. Patch by Darin Adler!
Anders Carlsson [Fri, 22 Oct 2010 23:37:08 +0000 (23:37 +0000)]
Warn if a variable marked with the "unused" attribute is used. Patch by Darin Adler!

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

13 years agoParse attributes on enumerators and instantiate attributes on enum decls.
John McCall [Fri, 22 Oct 2010 23:36:17 +0000 (23:36 +0000)]
Parse attributes on enumerators and instantiate attributes on enum decls.

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

13 years agoMinor tweak so that fixit-errors.c is never compiled; it crashes and pops up a crash...
Anders Carlsson [Fri, 22 Oct 2010 23:35:40 +0000 (23:35 +0000)]
Minor tweak so that fixit-errors.c is never compiled; it crashes and pops up a crash dialog on my system.

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

13 years agoUpdate compatibility page for objective-c.
Fariborz Jahanian [Fri, 22 Oct 2010 22:35:51 +0000 (22:35 +0000)]
Update compatibility page for objective-c.

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

13 years agoTeach clang_getCursorReferenced() and friends about BlockDeclRefExprs.
Douglas Gregor [Fri, 22 Oct 2010 22:24:08 +0000 (22:24 +0000)]
Teach clang_getCursorReferenced() and friends about BlockDeclRefExprs.

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

13 years agoIn the presence of using declarations, we can find the same class
Douglas Gregor [Fri, 22 Oct 2010 22:08:47 +0000 (22:08 +0000)]
In the presence of using declarations, we can find the same class
members in class subobjects of different types. So long as the
underlying declaration sets are the same, and the declaration sets
involve non-instance members, this is not an ambiguity.

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

13 years agoFix a horrible bug in all dataflow analyses that use CFGRecStmtVisitor (including...
Ted Kremenek [Fri, 22 Oct 2010 22:08:32 +0000 (22:08 +0000)]
Fix a horrible bug in all dataflow analyses that use CFGRecStmtVisitor (including live variables analysis).
We shouldn't recurse into CompoundStmts since they are already inlined in the CFG.  This could result in
bogus dead stores warnings (among other things).

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

13 years agoFix '-analyzer-display-progress' for Objective-C methods. Also remove obsolete code.
Ted Kremenek [Fri, 22 Oct 2010 22:08:29 +0000 (22:08 +0000)]
Fix '-analyzer-display-progress' for Objective-C methods.  Also remove obsolete code.

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

13 years agoTest emoved.
Fariborz Jahanian [Fri, 22 Oct 2010 22:05:40 +0000 (22:05 +0000)]
Test emoved.

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

13 years agoAfter discussion with Doug and John, I am reverting
Fariborz Jahanian [Fri, 22 Oct 2010 22:05:03 +0000 (22:05 +0000)]
After discussion with Doug and John, I am reverting
the patch.

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

13 years agoChange handling of inline asm 'p' constraint to match llvm-gcc.
Dale Johannesen [Fri, 22 Oct 2010 21:07:10 +0000 (21:07 +0000)]
Change handling of inline asm 'p' constraint to match llvm-gcc.

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

13 years agoSubstantially revise how clang computes the visibility of a declaration to
John McCall [Fri, 22 Oct 2010 21:05:15 +0000 (21:05 +0000)]
Substantially revise how clang computes the visibility of a declaration to
more closely parallel the computation of linkage.  This gets us to a state
much closer to what gcc emits, modulo bugs, which will undoubtedly arise in
abundance.

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

13 years agoPatch fixes miscompile with non-trivial copy constructors and
Fariborz Jahanian [Fri, 22 Oct 2010 21:01:02 +0000 (21:01 +0000)]
Patch fixes miscompile with non-trivial copy constructors and
statement expressions, //rdar: //8540501

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

13 years agoDelay record type's debug info emission, in -flimit-debug-info mode, if member expres...
Devang Patel [Fri, 22 Oct 2010 18:56:27 +0000 (18:56 +0000)]
Delay record type's debug info emission, in -flimit-debug-info mode, if member expression's base is call expr.

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

13 years agoRevert unintentional check-in.
Devang Patel [Fri, 22 Oct 2010 18:31:12 +0000 (18:31 +0000)]
Revert unintentional check-in.

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