Ted Kremenek
62cc9daae3
Have BasicStoreManager::getLValueElement() have logic similar to BasicStoreManager::getLValueField() (i.e., don't just return the 'base' as the SVal)
...
llvm-svn: 60795
2008-12-09 21:20:27 +00:00
Fariborz Jahanian
3d8552a75d
Support for implementation of property in the case where
...
the synthesis is in an implementation of s subclass of
a super class where the property has been declared.
llvm-svn: 60792
2008-12-09 20:23:04 +00:00
Sebastian Redl
c13f26873f
Kick out the proof-of-concept ASTOwner and replace it with ASTOwningResult
...
llvm-svn: 60791
2008-12-09 20:22:58 +00:00
Ted Kremenek
93041ba483
Add preliminary CFG support for @throw. We basically treat it like a return statement.
...
llvm-svn: 60790
2008-12-09 20:20:09 +00:00
Ted Kremenek
1857ff4e2c
In GRExprEngine treat @throw as an 'abort' that ends the current path. This is a temporary solution.
...
llvm-svn: 60789
2008-12-09 20:18:58 +00:00
Sebastian Redl
7379577ab0
Lay the groundwork for converting the entire parser-sema chain to smart pointers.
...
llvm-svn: 60782
2008-12-09 19:36:21 +00:00
Steve Naroff
b0498eebc2
Sema::ActOnMethodDeclaration(): Make sure we perform the default function/array conversion for parameter types.
...
This fixes <rdar://problem/6424064> checker on xcode: (possible bad AST) can the type of a method parameter really have "isFunctionType() == true"?
and http://llvm.org/bugs/show_bug.cgi?id=2997 .
llvm-svn: 60781
2008-12-09 19:36:17 +00:00
Chris Lattner
2e41b0e6e7
Fix a serious null termination bug found by David Chisnall!
...
llvm-svn: 60778
2008-12-09 19:10:54 +00:00
Sebastian Redl
17f2c7d251
Consistently use smart pointers for stmt and expr nodes in parser local variables.
...
llvm-svn: 60761
2008-12-09 13:15:23 +00:00
Zhongxing Xu
2e8123e5bb
Add utility method. Remove an unused method.
...
llvm-svn: 60758
2008-12-09 10:51:19 +00:00
Ted Kremenek
c28ce29a12
[static analyzer] Extend VLA size checking to look for undefined sizes.
...
llvm-svn: 60734
2008-12-09 00:44:16 +00:00
Ted Kremenek
6ee0a11814
Fixed LiveVariables bug where we didn't consider block-level expressions that functioned as the size of a VLA to be live.
...
llvm-svn: 60730
2008-12-09 00:14:14 +00:00
Fariborz Jahanian
8e0079c787
Change condition under which 'retain'/'copy' are directly evaluated.
...
llvm-svn: 60729
2008-12-08 23:56:17 +00:00
Ted Kremenek
8f7afdd21e
Add checking for zero-sized VLAs.
...
llvm-svn: 60726
2008-12-08 22:47:34 +00:00
Chris Lattner
46415261ee
Fix PR3172: if we see an eof or } at the top level, reject it.
...
This is important because ParseDeclarationOrFunctionDefinition
skips to, but does not consume, an } on error.
llvm-svn: 60719
2008-12-08 21:59:01 +00:00
Chris Lattner
3a90716f6a
improve comment.
...
llvm-svn: 60718
2008-12-08 21:53:24 +00:00
Ted Kremenek
96d2eecf85
'self.myIvar = nil' (properties) only releases myIvar when the property has kind 'assign'. This fixes <rdar://problem/6380411>.
...
llvm-svn: 60717
2008-12-08 21:44:15 +00:00
Steve Naroff
5fd31b17df
ObjCInterfaceDecl::lookupInstanceMethod() needs to look through a categories protocols.
...
Fixes <rdar://problem/6418640> clang on prokit: error: incompatible type returning 'id', expected 'NSSize'
llvm-svn: 60716
2008-12-08 20:57:28 +00:00
Fariborz Jahanian
3edadfc730
Changed 'readonly' 'retain/copy' diagnostics into
...
warning as it is allowed in gcc and will break projects.
llvm-svn: 60710
2008-12-08 19:28:10 +00:00
Fariborz Jahanian
3685995d2c
Since we do not allow a readonly property to be 'copy'retain', we
...
must allow the continuation class to extend it to a 'readwrite'
and 'copy/retain'.
llvm-svn: 60709
2008-12-08 18:47:29 +00:00
Douglas Gregor
5daeee2bd6
Move Sema::isTemplateParameterDecl to Decl::isTemplateParameter, where it belongs
...
llvm-svn: 60708
2008-12-08 18:40:42 +00:00
Zhongxing Xu
17a37ebf32
fix 80-col violation.
...
llvm-svn: 60693
2008-12-08 07:14:51 +00:00
Zhongxing Xu
8df5083bb4
fix typo.
...
llvm-svn: 60686
2008-12-08 05:12:38 +00:00
Eli Friedman
14fb8587be
Workaround for PR3173. The fix is correct in the sense that if the enum
...
code were working correctly, it would be a no-op, but it's not really a
proper fix. That said, I don't really want to touch the enum code at
the moment because I don't understand it very well, and this seems to
be a relatively visible regression.
llvm-svn: 60680
2008-12-08 02:21:03 +00:00
Nuno Lopes
cbab7f6b29
add missing gentoo c++ include paths
...
llvm-svn: 60655
2008-12-07 12:11:37 +00:00
Anders Carlsson
a1a9c28d30
Pass the VLA size expr range to the VLA diags
...
llvm-svn: 60645
2008-12-07 00:49:48 +00:00
Anders Carlsson
0d8f0ba6ed
Improve VLA diagnostics/sema checking. Fixes PR2361 and PR2352.
...
llvm-svn: 60638
2008-12-07 00:20:55 +00:00
Fariborz Jahanian
06d0dd641b
Setters returning a typedef of 'void' should not cause error.
...
Bug reported by Chris L.
llvm-svn: 60635
2008-12-06 23:12:49 +00:00
Fariborz Jahanian
d2c2ad515e
Use of properties declared in protocols in the category
...
via the category's protocol list1s, with appropriate
diagnsostics and a test case.
llvm-svn: 60634
2008-12-06 23:03:39 +00:00
Fariborz Jahanian
ff83998e31
Improve error reporting of property and setter/getter
...
type mimatches.
llvm-svn: 60630
2008-12-06 21:48:16 +00:00
Fariborz Jahanian
8707e322cc
Check for correct'void' return type for setter methods.
...
llvm-svn: 60629
2008-12-06 21:11:37 +00:00
Anders Carlsson
5df391e5c7
Add diagnostics for bitfields.
...
llvm-svn: 60628
2008-12-06 20:33:04 +00:00
Anders Carlsson
233a60d03e
Simplify some diagnostics.
...
llvm-svn: 60626
2008-12-06 20:05:35 +00:00
Fariborz Jahanian
62293f4d97
Changed a 'FIXME' into new comment. Added a test case
...
testing declaration of properties in categories.
llvm-svn: 60625
2008-12-06 19:59:02 +00:00
Ted Kremenek
69d78b9d98
Add bandaid transfer function support for assignments involving ObjCKVCRefExpr.
...
llvm-svn: 60622
2008-12-06 02:39:30 +00:00
Fariborz Jahanian
5a3422f602
Patch to diagnose a variety of misuse of property
...
attributes. Example would be, readonly, assign or
assign, copy, etc.
llvm-svn: 60620
2008-12-06 01:12:43 +00:00
Douglas Gregor
b0846b0f51
Add support for calls to dependent names within templates, e.g.,
...
template<typename T> void f(T x) {
g(x); // g is a dependent name, so don't even bother to look it up
g(); // error: g is not a dependent name
}
Note that when we see "g(", we build a CXXDependentNameExpr. However,
if none of the call arguments are type-dependent, we will force the
resolution of the name "g" and replace the CXXDependentNameExpr with
its result.
GCC actually produces a nice error message when you make this
mistake, and even offers to compile your code with -fpermissive. I'll
do the former next, but I don't plan to do the latter.
llvm-svn: 60618
2008-12-06 00:22:45 +00:00
Douglas Gregor
4619e439b6
Introduce basic support for dependent types, type-dependent
...
expressions, and value-dependent expressions. This permits us to parse
some template definitions.
This is not a complete solution; we're missing type- and
value-dependent computations for most of the expression types, and
we're missing checks for dependent types and type-dependent
expressions throughout Sema.
llvm-svn: 60615
2008-12-05 23:32:09 +00:00
Fariborz Jahanian
9c196795e6
Fixed a comment.
...
llvm-svn: 60611
2008-12-05 22:36:19 +00:00
Fariborz Jahanian
fbbaf6afae
This test checks for duplicate implementation of the same
...
property. It also checks for duplicate use of the same ivar
in two different iproperty implementations. It also caught
an error for a test case used in CodeGen :).
llvm-svn: 60610
2008-12-05 22:32:48 +00:00
Fariborz Jahanian
7988d7dc3e
(instance/class) Method type checking between class and its implementation.
...
(instance/class) Method type checking between category and its implementation.
And a test case for all.
llvm-svn: 60598
2008-12-05 18:18:52 +00:00
Douglas Gregor
5101c24f60
Representation of template type parameters and non-type template
...
parameters, with some semantic analysis:
- Template parameters are introduced into template parameter scope
- Complain about template parameter shadowing (except in Microsoft mode)
Note that we leak template parameter declarations like crazy, a
problem we'll remedy once we actually create proper declarations for
templates.
Next up: dependent types and value-dependent/type-dependent
expressions.
llvm-svn: 60597
2008-12-05 18:15:24 +00:00
Anders Carlsson
1aa679227b
Use VerifyIntegerConstantExpression instead of isIntegerConstantExpr. Fixes PR2963
...
llvm-svn: 60591
2008-12-05 16:33:57 +00:00
Anders Carlsson
98463cd44d
This wasn't such a good idea after all as it broke some tests.
...
llvm-svn: 60582
2008-12-05 05:24:13 +00:00
Anders Carlsson
3bc1d7d3d3
Handle __builtin___CFStringMakeConstantString in Expr::Evaluate.
...
llvm-svn: 60581
2008-12-05 05:18:05 +00:00
Anders Carlsson
1e495d9860
Make Sema::CheckForConstantInitializer use Expr::Evaluate. This fixes PR3130.
...
llvm-svn: 60580
2008-12-05 05:09:56 +00:00
Ted Kremenek
c9e7622a52
Add SymbolRef::print() and have SymbolicRegion::print() use this method instead of calling SymbolRef::getNumber().
...
llvm-svn: 60578
2008-12-05 02:45:20 +00:00
Ted Kremenek
3cb81db1b2
Use trait-based profiling of SymbolRefs, avoiding calling getNumber() (which will soon be removed).
...
llvm-svn: 60577
2008-12-05 02:39:38 +00:00
Ted Kremenek
d8242f19f7
Rename SymbolID to SymbolRef. This is a precursor to some overhauling of the representation of symbolic values.
...
llvm-svn: 60575
2008-12-05 02:27:51 +00:00
Zhongxing Xu
fbcf1e2623
Rename: FindContext -> FindDeclVisibleInContext.
...
llvm-svn: 60574
2008-12-05 01:57:57 +00:00