- Nov 24, 2008
-
-
Zhongxing Xu authored
llvm-svn: 59943
-
Chris Lattner authored
NamedDecl::getNameAsString() to make it more explicit. llvm-svn: 59937
-
Chris Lattner authored
a new NamedDecl::getAsString() method. Change uses of Selector::getName() to just pass in a Selector where possible (e.g. to diagnostics) instead of going through an std::string. This also adds new formatters for objcinstance and objcclass as described in the dox. llvm-svn: 59933
-
Zhongxing Xu authored
llvm-svn: 59932
-
Zhongxing Xu authored
llvm-svn: 59930
-
- Nov 23, 2008
-
-
Zhongxing Xu authored
llvm-svn: 59903
-
Zhongxing Xu authored
llvm-svn: 59899
-
- Nov 22, 2008
-
-
Chris Lattner authored
llvm-svn: 59879
-
Fariborz Jahanian authored
Issuing diagnostics when assigning to read-only properties. This is work in progress. llvm-svn: 59874
-
Zhongxing Xu authored
llvm-svn: 59870
-
Zhongxing Xu authored
ConcreteInt index for now. llvm-svn: 59869
-
- Nov 21, 2008
-
-
Ted Kremenek authored
- Add check for returning an undefined value to a caller. llvm-svn: 59764
-
- Nov 19, 2008
-
-
Zhongxing Xu authored
llvm-svn: 59619
-
Zhongxing Xu authored
llvm-svn: 59618
-
Chris Lattner authored
This also makes it illegal to have bare '%'s in diagnostics. If you want a % in a diagnostic, use %%. llvm-svn: 59596
-
Ted Kremenek authored
llvm-svn: 59571
-
- Nov 18, 2008
-
-
Zhongxing Xu authored
handle the case that the array element is of structure type when bind the whole array to a single value (for example, UnknownVal, UndefinedVal). llvm-svn: 59521
-
Chris Lattner authored
are formed. In particular, a diagnostic with all its strings and ranges is now packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a ton of random stuff. This has the benefit of simplifying the interface, making it more extensible, and allowing us to do more checking for things like access past the end of the various arrays passed in. In addition to introducing DiagnosticInfo, this also substantially changes how Diagnostic::Report works. Instead of being passed in all of the info required to issue a diagnostic, Report now takes only the required info (a location and ID) and returns a fresh DiagnosticInfo *by value*. The caller is then free to stuff strings and ranges into the DiagnosticInfo with the << operator. When the dtor runs on the DiagnosticInfo object (which should happen at the end of the statement), the diagnostic is actually emitted with all of the accumulated information. This is a somewhat tricky dance, but it means that the accumulated DiagnosticInfo is allowed to keep pointers to other expression temporaries without those pointers getting invalidated. This is just the minimal change to get this stuff working, but this will allow us to eliminate the zillions of variant "Diag" methods scattered throughout (e.g.) sema. For example, instead of calling: Diag(BuiltinLoc, diag::err_overload_no_match, typeNames, SourceRange(BuiltinLoc, RParenLoc)); We will soon be able to just do: Diag(BuiltinLoc, diag::err_overload_no_match) << typeNames << SourceRange(BuiltinLoc, RParenLoc)); This scales better to support arbitrary types being passed in (not just strings) in a type-safe way. Go operator overloading?! llvm-svn: 59502
-
Chris Lattner authored
delete huge trailing whitespace to fit in 80 cols. llvm-svn: 59497
-
Chris Lattner authored
strings instead of array of strings. This reduces string copying in some not-very-important cases, but paves the way for future improvements. llvm-svn: 59494
-
Chris Lattner authored
llvm-svn: 59491
-
- Nov 17, 2008
-
-
Ted Kremenek authored
where the control reaches the end of a non-void function and also allows the compiler to generate better code. When this assertion is false we can easily add more else cases. llvm-svn: 59468
-
- Nov 16, 2008
-
-
Zhongxing Xu authored
environment. llvm-svn: 59407
-
Zhongxing Xu authored
- RegionView and RegionViewMap is introduced to assist back-mapping from super region to subregions. - GDM is used to carry RegionView information. - AnonTypedRegion is added to represent a typed region introduced by pointer casting. Later AnonTypedRegion can be used in other similar cases, e.g., malloc()'ed region. - The specific conversion is delegated to store manager. llvm-svn: 59382
-
- Nov 15, 2008
-
-
Zhongxing Xu authored
llvm-svn: 59359
-
Zhongxing Xu authored
llvm-svn: 59356
-
Ted Kremenek authored
llvm-svn: 59354
-
Ted Kremenek authored
Reverted part of r59335: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20081110/009243.html In that patch I added a bogus type promotion for unary '!'. The real bug was more fallout from edges cases with compound assignments and conjured symbolic values. Now the conjured value has the type of the LHS expression, and we do a promotion to the computation type. We also now correctly do a conversion from the computation type back to the LHS type. llvm-svn: 59349
-
Ted Kremenek authored
llvm-svn: 59348
-
Ted Kremenek authored
llvm-svn: 59343
-
Ted Kremenek authored
Implement FIXME in GRExprEngine::VisitUnaryOperator() to handle implicit conversions caused by the '!' operator. This required adding some logic to GRSimpleVals to reason about nonloc::LocAsInteger SVals. This code appears to work fine, but it should eventually be cleaned up. llvm-svn: 59335
-
Ted Kremenek authored
llvm-svn: 59334
-
- Nov 14, 2008
-
-
Ted Kremenek authored
- Block-expression for 'ObjCForCollectionStmt' is not alive before it occurs - Recursively visit 'element' expression for ObjCForCollectionStmt to get liveness for referenced block-level expressions and variables. llvm-svn: 59316
-
Ted Kremenek authored
Second attempt at implementation transfer function support for ObjCForCollectionStmt. We now assume that the 'element' expression can be any lvalue. llvm-svn: 59313
-
Ted Kremenek authored
Flow-sensitive uninitialized values analysis: properly handle the 'element' expression of ObjCForCollectionStmt (can be anything). llvm-svn: 59312
-
Douglas Gregor authored
function call created in response to the use of operator syntax that resolves to an overloaded operator in C++, e.g., "str1 + str2" that resolves to std::operator+(str1, str2)". We now build a CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But only for binary operators, where we actually implement overloading) I decided *not* to refactor the current CallExpr to make it abstract (with FunctionCallExpr and CXXOperatorCallExpr as derived classes). Doing so would allow us to make CXXOperatorCallExpr a little bit smaller, at the cost of making the argument and callee accessors virtual. We won't know if this is going to be a win until we can parse lots of C++ code to determine how much memory we'll save by making this change vs. the performance penalty due to the extra virtual calls. llvm-svn: 59306
-
Zhongxing Xu authored
llvm-svn: 59294
-
Ted Kremenek authored
llvm-svn: 59290
-
Ted Kremenek authored
Update include files. llvm-svn: 59284
-
- Nov 13, 2008
-
-
Ted Kremenek authored
- Temporarily disabled test Analysis/array-struct.c for region store. llvm-svn: 59245
-