Douglas Gregor [Wed, 29 Sep 2010 04:25:11 +0000 (04:25 +0000)]
Move the management of the set of conversion functions in a C++ class
into CXXRecordDecl. The only part that we do not handle this way are
using declarations, since that would require extra name lookup that we
don't currently want to pay for. This fixes <rdar://problem/
8459981>,
so that LLDB can build a CXXRecordDecl and magically get all of the
right bits set.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115026
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Silverstein [Wed, 29 Sep 2010 04:14:20 +0000 (04:14 +0000)]
Visit the type information for CXXUnresolvedConstructExpr, just like
we do for the similar CXXTemporaryObjectExpr. OKed by chandlerc and
wan.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115025
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 29 Sep 2010 00:15:42 +0000 (00:15 +0000)]
Move the maintenance of CXXRecordDecl::DefinitionData's Abstract bit
completely into CXXRecordDecl, by adding a new completeDefinition()
function. This required a little reshuffling of the final-overrider
checking code, since the "abstract" calculation in the presence of
abstract base classes needs to occur in
CXXRecordDecl::completeDefinition() but we don't want to compute final
overriders more than one in the common case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115007
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2010 23:35:09 +0000 (23:35 +0000)]
enhance tentative parsing to handle ms extensions, patch by Martin Vejnar!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115004
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 28 Sep 2010 21:55:22 +0000 (21:55 +0000)]
Teach FunctionDecl::setPure() to (indirectly) mark the Abstract bit in
CXXRecordDecl::DefinitionData, rather than having Sema mark the bit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114993
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 28 Sep 2010 21:11:07 +0000 (21:11 +0000)]
Add test case for <rdar://problem/
8452791> (fixed in r114392).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114989
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 28 Sep 2010 20:50:54 +0000 (20:50 +0000)]
Reinstate r114925 and r114929, both steps toward
<rdar://problem/
8459981>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114984
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 28 Sep 2010 20:42:35 +0000 (20:42 +0000)]
vla expressions used in __typeof__ must be evaluated.
Fixes rdar://
8476159.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114982
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 28 Sep 2010 20:38:10 +0000 (20:38 +0000)]
Centralize the management of CXXRecordDecl::DefinitionData's Empty bit
in CXXRecordDecl itself. Yes, this is also part of <rdar://problem/
8459981>.
This reinstates r114924, with one crucial bug fix: we were ignoring
the implicit fields created by anonymous structs/unions when updating
the bits in CXXRecordDecl, which means that a class/struct containing
only an anonymous class/struct would be considered "empty". Hilarity
follows.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114980
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Tue, 28 Sep 2010 20:28:50 +0000 (20:28 +0000)]
Follow-up to r114978, used wrong tag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114979
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Tue, 28 Sep 2010 20:23:00 +0000 (20:23 +0000)]
Move ExternalSemaSource::ReadMethodPool's implementation to Sema.cpp so that the header can get away with forward declarations only for ObjCMethodList and Selector. Fixes <rdar://
8467631>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114978
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 28 Sep 2010 19:45:33 +0000 (19:45 +0000)]
Reinstate r114921, which I've exonerated via a self-host build.
Centralize the management of CXXRecordDecl::DefinitionData's Aggregate
and PlainOldData bits in CXXRecordDecl itself. Another milepost on the
road toward <rdar://problem/
8459981>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114977
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 28 Sep 2010 17:48:56 +0000 (17:48 +0000)]
When we have two identifiers in a row in Objective-C, make sure to
verify that we aren't in a message-send expression before digging into
the identifier or looking ahead more tokens. Fixes a regression
(<rdar://problem/
8483253>) I introduced with bracket insertion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114968
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 28 Sep 2010 14:54:11 +0000 (14:54 +0000)]
Don't warn with -Wbool-conversions if the user wrote an explicit cast like "(void *)false".
Fixes rdar://
8459342.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114955
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 28 Sep 2010 14:54:07 +0000 (14:54 +0000)]
Don't warn for an unused label if it has 'unused' attribute. Fixes rdar://
8483139.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114954
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Tue, 28 Sep 2010 02:55:49 +0000 (02:55 +0000)]
Fix a bug in loading macro records. Fixes yet another crash in libclang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114940
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Tue, 28 Sep 2010 02:24:44 +0000 (02:24 +0000)]
Fix a use of an invalidated reference due to a hash map reallocating.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114937
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 28 Sep 2010 01:28:56 +0000 (01:28 +0000)]
Accidentally committed some temporary changes on my branch when reverting patches.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114936
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 28 Sep 2010 01:09:49 +0000 (01:09 +0000)]
Temporarily revert 114929 114925 114924 114921. It looked like they (or at least
one of them) was causing a series of failures:
http://google1.osuosl.org:8011/builders/clang-x86_64-darwin10-selfhost/builds/4518
svn merge -c -114929 https://llvm.org/svn/llvm-project/cfe/trunk
--- Reverse-merging r114929 into '.':
U include/clang/Sema/Sema.h
U include/clang/AST/DeclCXX.h
U lib/Sema/SemaDeclCXX.cpp
U lib/Sema/SemaTemplateInstantiateDecl.cpp
U lib/Sema/SemaDecl.cpp
U lib/Sema/SemaTemplateInstantiate.cpp
U lib/AST/DeclCXX.cpp
svn merge -c -114925 https://llvm.org/svn/llvm-project/cfe/trunk
--- Reverse-merging r114925 into '.':
G include/clang/AST/DeclCXX.h
G lib/Sema/SemaDeclCXX.cpp
G lib/AST/DeclCXX.cpp
svn merge -c -114924 https://llvm.org/svn/llvm-project/cfe/trunk
--- Reverse-merging r114924 into '.':
G include/clang/AST/DeclCXX.h
G lib/Sema/SemaDeclCXX.cpp
G lib/Sema/SemaDecl.cpp
G lib/AST/DeclCXX.cpp
U lib/AST/ASTContext.cpp
svn merge -c -114921 https://llvm.org/svn/llvm-project/cfe/trunk
--- Reverse-merging r114921 into '.':
G include/clang/AST/DeclCXX.h
G lib/Sema/SemaDeclCXX.cpp
G lib/Sema/SemaDecl.cpp
G lib/AST/DeclCXX.cpp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114933
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 28 Sep 2010 00:00:00 +0000 (00:00 +0000)]
Centralize the management of CXXRecordDecl::DefinitionData's
HasTrivialConstructor, HasTrivialCopyConstructor,
HasTrivialCopyAssignment, and HasTrivialDestructor bits in
CXXRecordDecl's methods. This completes all but the Abstract bit and
the set of conversion functions, both of which will require a bit of
extra work. The majority of <rdar://problem/
8459981> is now
implemented (but not all of it).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114929
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 23:39:06 +0000 (23:39 +0000)]
Centralize the management of CXXRecordDecl::DefinitionData's
Polymorphic bit in CXXRecordDecl itself. Yes, this is also part of
<rdar://problem/
8459981>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114925
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 23:31:14 +0000 (23:31 +0000)]
Centralize the management of CXXRecordDecl::DefinitionData's Empty bit
in CXXRecordDecl itself. Yes, this is also part of <rdar://problem/
8459981>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114924
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 27 Sep 2010 23:20:01 +0000 (23:20 +0000)]
My previous fix was incorrect for non-chained PCH reuse. Fix again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114922
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 23:16:44 +0000 (23:16 +0000)]
Centralize the management of CXXRecordDecl::DefinitionData's Aggregate
and PlainOldData bits in CXXRecordDecl itself. Another milepost on the
road toward <rdar://problem/
8459981>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114921
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 22:48:58 +0000 (22:48 +0000)]
Centralize the handling of CXXRecordDecl::DefinitionData's
DeclaredDestructor and UserDeclaredDestructor bits in CXXRecordDecl
itself. Another step on the road to <rdar://problem/
8459981>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114918
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 27 Sep 2010 22:42:37 +0000 (22:42 +0000)]
Patch to support transparent_union arguments
passed to nonnull attributed functions. Implements radar
6857843.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114917
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 22:37:28 +0000 (22:37 +0000)]
Kill FunctionDecl's IsCopyAssignment bit; it duplicated what could
already be determined by isCopyAssignmentOperator(), and was set too
late in the process for all clients to see the appropriate
value. Cleanup only; no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114916
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 27 Sep 2010 22:18:47 +0000 (22:18 +0000)]
When chaining PCHs, only write PPRecords that don't come from PCH, and give them the correct IDs. Fixes a crash in XCode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114913
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 22:06:20 +0000 (22:06 +0000)]
Centralize the handling of
CXXRecordDecl::DefinitionData::DeclaredCopyAssignment, for
copy-assignment operators. Another step toward <rdar://problem/
8459981>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114899
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 27 Sep 2010 21:22:25 +0000 (21:22 +0000)]
Revert my patch changing the MMX "shift" intrinsics that take immediates into
"shift with non-immediate" intrinsics. It gets here because we they aren't
immediates anymore.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114890
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 21:17:54 +0000 (21:17 +0000)]
Clean up the handling of the DeclaredDefaultConstructor and
DeclaredCopyConstructor bits in CXXRecordDecl's DefinitionData
structure. Rather than having Sema call addedConstructor or set the
bits directly at semi-random places, move all of the logic for
managing these bits into CXXRecordDecl itself and tie the
addedConstructor call into DeclContext::addDecl().
This makes it easier for AST-building clients to get the right bits
set in DefinitionData, and is one small part of <rdar://problem/
8459981>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114889
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 27 Sep 2010 21:02:09 +0000 (21:02 +0000)]
Correctly set "explicit template instantiation" kind on inner structs of templates whose explicit instantiation is first declared and then defined.
Fixes http://llvm.org/pr8207
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114874
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 27 Sep 2010 20:40:32 +0000 (20:40 +0000)]
Let lit give helpful advice if 'make test' was not run yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114869
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 27 Sep 2010 20:13:24 +0000 (20:13 +0000)]
utils/ABITest: Factor out type naming code slightly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114867
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 27 Sep 2010 20:13:22 +0000 (20:13 +0000)]
utils/ABITest: Tweak default bit-field types to cover some more interesting cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114866
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 27 Sep 2010 20:13:19 +0000 (20:13 +0000)]
utils/ABITest: Add a workaround for mismatches due to PR5579.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114865
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 27 Sep 2010 20:13:17 +0000 (20:13 +0000)]
utils/ABITest: Add option to skip individual tests by index.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114864
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 27 Sep 2010 20:13:13 +0000 (20:13 +0000)]
Frontend: Teach clang -cc1as to respond to -v.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114863
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 27 Sep 2010 19:05:51 +0000 (19:05 +0000)]
Issue warning for trivial cases of nonnull attributes
(on functions with no pointer arguments) but only when
the attribute has not been coming from a macro
instantiation in a header file. Fixes first part
of radar
6857843.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114860
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 27 Sep 2010 17:30:38 +0000 (17:30 +0000)]
Copying result of object property reference expression
into a temporary is elidable as well.
(Finishes up radar
8291337).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114845
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 16:43:25 +0000 (16:43 +0000)]
Remove libclang logging code
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114836
91177308-0d34-0410-b5e6-
96231b3b80d8
Abramo Bagnara [Mon, 27 Sep 2010 07:13:32 +0000 (07:13 +0000)]
Fixed isConstantInitializer for __builtin_choose_expr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114820
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 27 Sep 2010 06:34:47 +0000 (06:34 +0000)]
Fix coding standard mistake from my last commit.
That, and keep aKor happy :P.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114816
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 27 Sep 2010 06:19:02 +0000 (06:19 +0000)]
Lexer: Implement GCC's version of pragma message.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114814
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 27 Sep 2010 05:49:58 +0000 (05:49 +0000)]
Enable caching of global code completion results in the suggested
libclang options for editing a translation unit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114810
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 25 Sep 2010 18:10:05 +0000 (18:10 +0000)]
Driver/Linux: Translate rewritten lib options back to standard -l form when
using generic GCC tools.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114793
91177308-0d34-0410-b5e6-
96231b3b80d8
Marcin Swiderski [Sat, 25 Sep 2010 11:05:21 +0000 (11:05 +0000)]
In preparation for adding generation of destructors for objects with automatic storage added:
- LocalScope class with iterator used to pointing into it,
- fat doxygen comment for LocalScope indended usage,
- BlockScopePosPair class used for storing jump targets/sources (for: goto, break, continue), that replaces raw CFGBlock pointer used earlier for this purpose.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114790
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 25 Sep 2010 01:08:05 +0000 (01:08 +0000)]
Fix a NYI in IRGen which was due to incorrect AST
for property reference expression (of c++ object type)
in the conditional expression. Fixes // rdar://
8291337
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114783
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 24 Sep 2010 23:29:12 +0000 (23:29 +0000)]
When setting the globally-visible declarations for a particular
identifier, we may have a Sema object but no translation unit scope
(because parsing is finished). In this case, we still need to update
the IdResolver, which might still be used when writing a PCH
containing another PCH (without chaining). This bug manifested as a
failure with precompiled preambles.
Also, add a little environment-variable-sensitive logging for
libclang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114774
91177308-0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 24 Sep 2010 21:25:25 +0000 (21:25 +0000)]
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
Douglas Gregor [Fri, 24 Sep 2010 21:18:36 +0000 (21:18 +0000)]
Teach libclang to enable multithreading in LLVM, since libclang clients are likely to be multithreaded. Also move the printing of timers to somewhere better for multithreaded libclang clients
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114760
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 24 Sep 2010 19:39:37 +0000 (19:39 +0000)]
Driver: Add -fallow-unsupported which disables some of the eager error'ing we do
to prevent users from trying unsupported stuff. Useful for testing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114749
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 24 Sep 2010 18:36:58 +0000 (18:36 +0000)]
Fix rewriting of property declared in @protocol's.
Fixed //rdar://
8472487.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114741
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 24 Sep 2010 17:30:16 +0000 (17:30 +0000)]
Patch implements passing arrays to functions expecting
vla. Implements pr7827.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114737
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 24 Sep 2010 17:26:14 +0000 (17:26 +0000)]
Update Clang man page to say a little bit more about C++
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114735
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 24 Sep 2010 02:43:32 +0000 (02:43 +0000)]
Remove this test for now until I figure out how to get it to work with c-index-test in a portable way.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114721
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 24 Sep 2010 02:00:46 +0000 (02:00 +0000)]
Pass -fobjc-nonfragile-abi2 in test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114720
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 24 Sep 2010 01:51:38 +0000 (01:51 +0000)]
Since this test depends on default ivar synthesis, specify the target triple. This hopefully unbreaks the buildbot
on some archs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114716
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 24 Sep 2010 01:24:15 +0000 (01:24 +0000)]
Update comment in test with reference to bug report.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114715
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 24 Sep 2010 01:23:01 +0000 (01:23 +0000)]
Default synthesized ivars don't really have a location in the source. Using the location of the @implementation
is just confusing for clients that want to use SourceLocations for syntactic references.
Fixes: <rdar://problem/8470540>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114714
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 24 Sep 2010 00:46:53 +0000 (00:46 +0000)]
Revert r114712 due to failure on darwin buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114713
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 23 Sep 2010 23:49:25 +0000 (23:49 +0000)]
Make -M/-MM behave like in gcc; use -MF first then -o else use stdout.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114712
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 23 Sep 2010 23:48:20 +0000 (23:48 +0000)]
Fix header comment so we don't break emacs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114711
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 23 Sep 2010 23:01:17 +0000 (23:01 +0000)]
Synchronize globally-cached code completion results with the results
provided when the optimization is disabled. In particular, split
the completion context CCC_Other into two contexts: CCC_Other, which
means that it's an undisclosed context for which any other results are
unwelcome, and CCC_Recovery, which is used in recovery cases.
Since we're now using the completion context within the completion
results builder, make sure that it's always set to something.
Fixes <rdar://problem/
8470644>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114704
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 23 Sep 2010 21:43:57 +0000 (21:43 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114697
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Sep 2010 21:43:44 +0000 (21:43 +0000)]
When warning about comparing an unsigned int to being >= 0, don't issue a warning if the zero value was an
enum or was expanded from a macro.
Fixes: <rdar://problem/8414119>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114695
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Sep 2010 21:25:13 +0000 (21:25 +0000)]
Add test case for c-index-test showing that @property declarations added in class extensions don't get reported
in the @interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114694
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Sep 2010 21:18:05 +0000 (21:18 +0000)]
For properties declared in a @protocol and redeclared in a class extension, use the class extension
as the lexical DeclContext for the @property declaration that gets auto-created for the @interface.
Fixes: <rdar://problem/8467189>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114693
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 23 Sep 2010 18:47:53 +0000 (18:47 +0000)]
Add some missing concurrency checks into libclang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114682
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 23 Sep 2010 14:26:01 +0000 (14:26 +0000)]
Fix bogus compiler errors when declaring anonymous union, outside a class, with
members with the same name as a decl outside the scope where the members are actually introduced.
Fixes http://llvm.org/PR6741
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114641
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 23 Sep 2010 12:56:06 +0000 (12:56 +0000)]
If -fcolor-diagnostics is explicitly passed to the driver respect that even if the driver is of the opinion that
stderr can't handle them. (see http://llvm.org/PR8150)
Patch by Frits van Bommel!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114638
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 23 Sep 2010 09:40:31 +0000 (09:40 +0000)]
Don't crash on _Imaginary.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114637
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 23 Sep 2010 09:40:20 +0000 (09:40 +0000)]
Use -emit-llvm-only in the test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114636
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Sep 2010 05:14:51 +0000 (05:14 +0000)]
Refactor GRExprEngine::VisitCall() to use EvalArguments(), just like VisitCXXMemberCallExpr(). Ideally we should unify these code paths as much as possible, since they only differ by a few details.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114628
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 23 Sep 2010 04:40:10 +0000 (04:40 +0000)]
Tweak test to pass -ffreestanding, to avoid platform dependent header issues.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114627
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 23 Sep 2010 01:54:32 +0000 (01:54 +0000)]
IRgen/ABI/ARM: Return large vectors in memory.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114619
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 23 Sep 2010 01:54:28 +0000 (01:54 +0000)]
IRgen/ABI/ARM: Trust the backend to pass vectors correctly for the given ABI.
- Therefore, we can lower out the NEON wrapper structs and pass the vectors
directly. This makes a huge difference in the cleanliness of the IR after
optimization.
- I will trust, but verify, via future ABITest testing (for APCS-GNU, at
least).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114618
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Sep 2010 00:35:46 +0000 (00:35 +0000)]
Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114615
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Sep 2010 21:22:29 +0000 (21:22 +0000)]
Implement libclang API functions for retrieving the lexical and
semantic parents of the given cursor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114587
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 22 Sep 2010 21:13:48 +0000 (21:13 +0000)]
Testcase for r114585.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114586
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Care [Wed, 22 Sep 2010 21:07:51 +0000 (21:07 +0000)]
Fix an inverse boolean and unnecessary new line in warning output from AnalyzerStatsChecker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114581
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Wed, 22 Sep 2010 20:19:08 +0000 (20:19 +0000)]
Change source manager serialization to be less tied to the PCH model.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114575
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Sep 2010 16:33:13 +0000 (16:33 +0000)]
Fix a hard-to-reproduce crash-on-invalid, where we weren't checking for a valid result from ActOnIdExpression
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114548
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 22 Sep 2010 14:32:24 +0000 (14:32 +0000)]
Implement -Wpadded and -Wpacked.
-Wpadded warns when undesired padding is introduced in a struct. (rdar://
7469556)
-Wpacked warns if a struct is given the packed attribute, but the packed attribute has no effect
on the layout or the size of the struct. Such structs may be mis-aligned for little benefit.
The warnings are emitted at the point where layout is calculated, that is at RecordLayoutBuilder.
To avoid calculating the layouts of all structs regardless of whether they are needed or not,
I let the layouts be lazily constructed when needed. This has the disadvantage that the above warnings
will be emitted only when they are used for IR gen, and not e.g with -fsyntax-only:
$ cat t.c
struct S {
char c;
int i;
};
void f(struct S* s) {}
$ clang -fsyntax-only -Wpadded t.c
$ clang -c -Wpadded t.c -o t.o
t.c:3:7: warning: padding struct 'struct S' with 3 bytes to align 'i' [-Wpadded]
int i;
^
1 warning generated.
This is a good tradeoff between providing the warnings and not calculating layouts for all
structs in case the user has enabled a couple of rarely used warnings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114544
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 06:09:31 +0000 (06:09 +0000)]
update a bunch of tests that are using the x86 backend instead of grepping IR :(
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114535
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Wed, 22 Sep 2010 00:42:30 +0000 (00:42 +0000)]
Only preload SLocEntries after the entire PCH chain was loaded.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114518
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Wed, 22 Sep 2010 00:42:27 +0000 (00:42 +0000)]
Reshuffle PerFileData's members to make more sense.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114517
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 22 Sep 2010 00:03:52 +0000 (00:03 +0000)]
Driver/Darwin: Add a runtime library just for ___eprintf -- when targeting i386
some projects still depend on ___eprintf being available.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114509
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 23:40:48 +0000 (23:40 +0000)]
fix the rest of rdar://
8461279 - clang miscompiles address-space qualified atomics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114503
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 23:35:30 +0000 (23:35 +0000)]
same bug as before, this time with __sync_val_compare_and_swap.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114502
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 23:24:52 +0000 (23:24 +0000)]
fix __sync_bool_compare_and_swap to work with address-space qualified types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114498
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 23:22:41 +0000 (23:22 +0000)]
filecheckize.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114497
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 21 Sep 2010 22:53:33 +0000 (22:53 +0000)]
Fixes an IRgen ICE due to cast of null pointer to
a vla type (fixes pr7827).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114495
91177308-0d34-0410-b5e6-
96231b3b80d8
John Thompson [Tue, 21 Sep 2010 22:04:54 +0000 (22:04 +0000)]
Fixed pr20314-2.c failure, added E, F, p constraint letters.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114490
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Sep 2010 20:52:59 +0000 (20:52 +0000)]
Correctly register the class extension as the lexical DeclContext for ObjC methods declared with @property in class extensions.
This matches the behavior for setters.
Also pass the class extension to ProcessPropertyDecl as the lexical DeclContext, even when not redeclaring the @property.
This fixes the remaining issues in <rdar://problem/
7410145>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114477
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 21 Sep 2010 18:32:21 +0000 (18:32 +0000)]
IRgen for gnu extension's conditional lvalue expression
with missing LHS. radar
8453812. Executable test is checked
into llvm test suite.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114457
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Sep 2010 18:28:43 +0000 (18:28 +0000)]
For ObjCPropertyDecls in class extensions, use the class extension as the lexical DeclContext for newly created
ObjCMethodDecls. Further, use the location of the new property declaration as the location of new ObjCMethodDecls
(if they didn't previously exist).
This fixes more of the issues reported in <rdar://problem/
7410145>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114456
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 21 Sep 2010 16:06:22 +0000 (16:06 +0000)]
Add code completion for C++ constructors wherever we see the class (or
class template) and are in a context where we can have a value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114441
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 21 Sep 2010 15:59:59 +0000 (15:59 +0000)]
Adjust for debug info API change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114438
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 21 Sep 2010 10:47:20 +0000 (10:47 +0000)]
Do not warn with -Wuninitialized when the member is used in a sizeof or address-of expression.
Fixes rdar://
8331312.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114426
91177308-0d34-0410-b5e6-
96231b3b80d8