Fariborz Jahanian
8efe0ec899
Issue a bettter diagnostics for incorrect property setter name.
...
(radar 7647953).
llvm-svn: 96284
2010-02-15 22:20:11 +00:00
Chandler Carruth
3e0c140c50
Fix instantiation of template functions with local classes that contain virtual
...
methods.
llvm-svn: 96283
2010-02-15 22:12:26 +00:00
Douglas Gregor
522e22d352
Tell ASTMerge to merge every declaration it sees, rather than cherry-picking those declarations that we know will work.
...
llvm-svn: 96280
2010-02-15 22:05:17 +00:00
Douglas Gregor
3996e249ed
Reimplement the structural-equality checks used to determine whether
...
two types in different AST contexts are equivalent. Rather than
transforming the type from one context into the other context, we
perform a deep structural comparison of the types. This change
addresses a serious problem with recursive data types like
struct ListNode {
int value;
struct ListNode *Next;
} xList;
llvm-svn: 96278
2010-02-15 22:01:00 +00:00
Fariborz Jahanian
30a42923d3
Class continuation now has its own property ast for
...
those declared in it. This is to allow duplicate
property diagnostics for properties declared in class extensions
multiple times (radar 7629420) and for future use.
llvm-svn: 96276
2010-02-15 21:55:26 +00:00
Fariborz Jahanian
06708cee8d
Test to compile the rewritten file for my last patch.
...
(radar 7649577 related).
llvm-svn: 96274
2010-02-15 21:37:11 +00:00
Fariborz Jahanian
02d964babe
Fix a broken rewritin of @implementation keyword.
...
(fixes radar 7649577).
llvm-svn: 96270
2010-02-15 21:11:41 +00:00
John McCall
5f5cbf5d1d
Optimize the implementation of IdDeclInfo pooling in the IdentifierResolver.
...
llvm-svn: 96253
2010-02-15 19:38:00 +00:00
Devang Patel
e8814ce0a6
Use getLocStart(), instead of getLocEnd(), to record starting location of objc method. :)
...
llvm-svn: 96245
2010-02-15 18:08:38 +00:00
Sanjiv Gupta
9d23f93d52
reverting back 96242 as it still causes a test failure.
...
llvm-svn: 96244
2010-02-15 18:02:12 +00:00
Sanjiv Gupta
af56d377f1
Re-applying 96173 with corresponding changes in test.
...
llvm-svn: 96242
2010-02-15 17:19:13 +00:00
Duncan Sands
998f9d975b
Uniformize the names of type predicates: rather than having isFloatTy and
...
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96224
2010-02-15 16:14:01 +00:00
Chandler Carruth
284bb2ec72
Defer covariance checks for dependent types. Add test cases that also ensure
...
they are re-checked on instantiation.
llvm-svn: 96217
2010-02-15 11:53:20 +00:00
Zhongxing Xu
ec345b7ecb
Simplify code. If we can reach here, the base must be virtual.
...
llvm-svn: 96211
2010-02-15 04:28:35 +00:00
John McCall
7538eec67b
When emitting an aggregate into a temporary, make sure we set the alignment
...
on the alloca.
The fact that codegen makes this class of bug so wonderfully easy to make is
embarrassing.
llvm-svn: 96204
2010-02-15 01:23:36 +00:00
Ted Kremenek
4ba99bee2a
clang::Attr objects should be treated as AST nodes as well by
...
the LLVMConventionsChecker.
llvm-svn: 96202
2010-02-14 22:58:16 +00:00
Ted Kremenek
4853131459
Add LLVM conventions check that scans for AST elements (types, stmts, decls)
...
that allocate heap memory.
llvm-svn: 96184
2010-02-14 19:09:13 +00:00
Ted Kremenek
988805c81e
Change LLVMConventionsChecker to accept an entire translation unit instead
...
of operating on each code decl. This exposes two flaws in AnalysisConsumer
that should eventually be fixed:
(1) It is not possible to associate multiple "actions" with a single
command line argument. This will require the notion of an
"analysis" group, and possibly tablegen support. (although eventually
we want to support dynamically loading analyses as well)
(2) AnalysisConsumer may not actually be scanning the declarations in namespaces.
We'll experiment first in LLVMConventionsChecker before changing the
behavior in AnalysisConsumer.
llvm-svn: 96183
2010-02-14 19:09:05 +00:00
Ted Kremenek
39df94b00d
Rework translation unit actions to actually take an entire translation unit
...
as imput.
llvm-svn: 96182
2010-02-14 19:08:51 +00:00
Ted Kremenek
c968e5e9b9
For the StringRef check, also visit the children of DeclStmts.
...
llvm-svn: 96181
2010-02-14 19:08:43 +00:00
Ted Kremenek
4806a833a7
Place type-checking static methods at type of file (where they will congregate).
...
No functionality change.
llvm-svn: 96180
2010-02-14 19:08:36 +00:00
Chris Lattner
d0413848cc
temporarily revert 96173, it is causing test failures.
...
llvm-svn: 96176
2010-02-14 18:38:38 +00:00
Sanjiv Gupta
1ef8cdd29b
renamed pic16 specifiic macros.
...
llvm-svn: 96173
2010-02-14 18:20:18 +00:00
Anders Carlsson
033d48697f
Don't compute final overriders or build vtables for bases that don't need a vtable.
...
llvm-svn: 96171
2010-02-14 17:05:59 +00:00
Benjamin Kramer
88ab94e7a3
Pass StringRefs to InsertText/ReplaceText in RewriteObjC and remove a ton of unnecessary length arguments.
...
llvm-svn: 96164
2010-02-14 14:14:16 +00:00
Daniel Dunbar
02968e53cf
CIndex: Switch CXSourceRange to proper half-open intervals.
...
- Doug, please review.
llvm-svn: 96162
2010-02-14 10:02:57 +00:00
Daniel Dunbar
edeb9b87e6
CIndex: Avoid an unnecessary getLocForEndOfToken call, the region of interest
...
doesn't need to be a full token.
- Doug, please review.
llvm-svn: 96161
2010-02-14 10:02:42 +00:00
Daniel Dunbar
6092d507f0
c-index-test: Unify and always print half-open extents.
...
llvm-svn: 96160
2010-02-14 08:32:51 +00:00
Daniel Dunbar
eb27e7d999
c-index-test: Simplify file scanning code.
...
llvm-svn: 96159
2010-02-14 08:32:32 +00:00
Daniel Dunbar
98c07e0e23
c-index-test: Unify syntax for printing extents. Yes, there were 4.
...
llvm-svn: 96158
2010-02-14 08:32:24 +00:00
Daniel Dunbar
2049933196
CIndex: Simplify (remove provably dead code).
...
llvm-svn: 96157
2010-02-14 08:32:11 +00:00
Daniel Dunbar
2f4ba179f5
CIndex: Inline CompareRegionOfInterest(CXSourceRange) into sole caller.
...
llvm-svn: 96156
2010-02-14 08:32:05 +00:00
Daniel Dunbar
80daf53600
Rename translateSourceRange(CXSourceRange) translateCXSourceRange, instead of
...
having overloaded functions with inverse semantics.
llvm-svn: 96155
2010-02-14 08:31:57 +00:00
Zhongxing Xu
be36ecbb60
Fix pr6293. If ptr is NULL, no operation is preformed.
...
llvm-svn: 96154
2010-02-14 06:49:48 +00:00
Ted Kremenek
184b3383bf
Add new static analyzer for checking LLVM coding conventions: -analyzer-check-llvm-conventions
...
Currently these checks are intended to be largely syntactical, but may get more
sophisticated over time.
As an initial foray into this brave new world, emit a static analyzer warning
when binding a temporary 'std::string' to an 'llvm::StringRef' where the
lifetime of the 'std::string' does not outlive the 'llvm::StringRef'.
llvm-svn: 96147
2010-02-14 02:45:18 +00:00
Ted Kremenek
eff72bb134
Two changes to AnalysisConsumer::HandleTopLevelSingleDecl():
...
(1) Since CXXMethodDecl subclasses FunctionDecl (and CXXDestructorDecl
and CXXConversion subclass CXXMethodDecl), refactor switch statement
to handle them all in one spot.
(2) Use 'DeclarationName::getAsString()' to handle all functions that
don't have simple identifiers (fixing a null dereference when scanning
for specific functions).
llvm-svn: 96146
2010-02-14 02:44:52 +00:00
Daniel Dunbar
c4b4d3953c
CIndex: Kill off CXSourceLocationPtr, and AtEnd arguments.
...
llvm-svn: 96145
2010-02-14 01:47:36 +00:00
Daniel Dunbar
474b207716
CIndex: Stop hiding magic end bit in CXSourceRange locations where clients can't
...
see it. Instead, translate the locations up-front when we create a
CXSourceRange.
- This is part of a move to make CXSourceRange a pure half-open range, which is
a more natural API for clients to deal with. More cleanups to follow.
llvm-svn: 96144
2010-02-14 01:47:29 +00:00
John McCall
38200b081a
Improve the diagnostic given when referring to a tag type without a tag (in C)
...
or that's been hidden by a non-type (in C++).
The ideal C++ diagnostic here would note the hiding declaration, but this
is a good start.
llvm-svn: 96141
2010-02-14 01:03:10 +00:00
Anders Carlsson
073a0c88cc
Build fix.
...
llvm-svn: 96140
2010-02-14 00:44:19 +00:00
Anders Carlsson
6a7e6a4c3c
Baby steps towards teaching FinalOverriders about virtual bases.
...
llvm-svn: 96139
2010-02-14 00:37:35 +00:00
Anders Carlsson
1888b44988
Don't try to layout construction vtables for now.
...
llvm-svn: 96138
2010-02-14 00:22:59 +00:00
Anders Carlsson
258a1e35e8
Improve support for non-virtual 'this' pointer adjustments. With this, it should be possible to use the new vtable layout code for all class hierarchies that do not involve virtual bases.
...
llvm-svn: 96137
2010-02-14 00:16:19 +00:00
Anders Carlsson
d3adb0ced9
Add basic support for simple non-virtual 'this' pointer adjustments.
...
llvm-svn: 96136
2010-02-13 23:40:17 +00:00
Anders Carlsson
cce9ee8970
Add support for very simple non-virtual this adjustments in the FinalOverriders class.
...
llvm-svn: 96133
2010-02-13 23:17:31 +00:00
Anders Carlsson
c809cbdc3f
Cleanup; remove some duplicated code.
...
llvm-svn: 96131
2010-02-13 22:39:18 +00:00
Anders Carlsson
a678aa1e51
Assert if we encounter this adjustments.
...
llvm-svn: 96125
2010-02-13 22:23:31 +00:00
Anders Carlsson
e75aaa97b3
Start laying out secondary vtables.
...
llvm-svn: 96123
2010-02-13 22:05:23 +00:00
Anders Carlsson
3f9917de6e
Merge base offsets and dump them.
...
llvm-svn: 96121
2010-02-13 21:33:22 +00:00
Anders Carlsson
c1290adab7
Don't make return adjustments for pure virtual member functions.
...
llvm-svn: 96120
2010-02-13 21:16:54 +00:00