]>
granicus.if.org Git - clang/log
Daniel Dunbar [Thu, 23 Oct 2008 05:59:43 +0000 (05:59 +0000)]
Hook "fast" code generation to -O0.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58035
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 23 Oct 2008 05:50:47 +0000 (05:50 +0000)]
Add -O[0-3s] support (following llvm-gcc).
- Passes match llvm-gcc but many of the switches aren't wired.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58034
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Thu, 23 Oct 2008 04:19:25 +0000 (04:19 +0000)]
Add an assertion to make our intention more clear.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58030
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 23 Oct 2008 03:52:39 +0000 (03:52 +0000)]
If NDEBUG is set, don't include any of the code for visualizing inheritance hierarchies
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58029
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Thu, 23 Oct 2008 03:10:39 +0000 (03:10 +0000)]
Let StoreManager do different cast on arrays. BasicStore will just keep it intact.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58028
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Oct 2008 02:50:14 +0000 (02:50 +0000)]
Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58027
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Oct 2008 01:57:31 +0000 (01:57 +0000)]
Temporarily mark this test XFAIL.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58024
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Oct 2008 01:56:15 +0000 (01:56 +0000)]
Disable warning about potential leaks of returned values until we test it a little more (lots of noise).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58021
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Thu, 23 Oct 2008 01:35:34 +0000 (01:35 +0000)]
Added a method to ElementRegion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58020
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 23 Oct 2008 00:40:37 +0000 (00:40 +0000)]
Add support for conversions from a pointer-to-derived to a
pointer-to-base. Also, add overload ranking for pointer conversions
(for both pointer-to-void and derived-to-base pointer conversions).
Note that we do not yet diagnose derived-to-base pointer conversion
errors that stem from ambiguous or inacessible base classes. These
aren't handled during overload resolution; rather, when the conversion
is actually used we go ahead and diagnose the error.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58017
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Oct 2008 00:00:24 +0000 (00:00 +0000)]
Update Xcode project. We still get a link error, however, because of an LLVM library that isn't being linked in for CodeGen (will fix).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58015
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 22 Oct 2008 23:56:21 +0000 (23:56 +0000)]
Warn about potentially leaked objects that are returned from methods whose names do not follow the Cocoa Memory Management guidelines.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58012
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Wed, 22 Oct 2008 23:42:04 +0000 (23:42 +0000)]
Fix <rdar://problem/
6312683 > clang block rewriter:
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58011
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 22 Oct 2008 23:08:24 +0000 (23:08 +0000)]
Restrict creation of OverloadedFunctionDecl only to C++ (it was getting used for invalid redeclarations on C).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58008
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Wed, 22 Oct 2008 22:40:28 +0000 (22:40 +0000)]
Fix <rdar://problem/
6311947 > clang on xcode (regression): error: use of undeclared identifier 'expandedValue'.
Mea culpa: I introduced this regresson in the following 2 commits: r57529 (10/14), r57841 (10/20).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58007
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 22 Oct 2008 21:53:52 +0000 (21:53 +0000)]
Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58005
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Oct 2008 21:25:12 +0000 (21:25 +0000)]
Remove the GraphWriter-based version of the C++ class inheritance visualization, since it isn't being used and can't handle virtual bases properly
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58002
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Oct 2008 21:13:31 +0000 (21:13 +0000)]
Added GraphViz visualization of C++ inheritance hierarchies.
Factored the QualTypeOrdering predicate into its own header
(TypeOrdering.h), now that it is used in two places.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58001
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 22 Oct 2008 21:00:29 +0000 (21:00 +0000)]
Now that DeclRefExpr accepts a NamedDecl, use a DeclRefExpr for when a CXXFieldDecl is referenced inside a method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58000
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 22 Oct 2008 20:54:52 +0000 (20:54 +0000)]
Enhance reference-count checker to correctly identify CG "release" functions. This fixes <rdar://problem/
6303488 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57997
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Wed, 22 Oct 2008 19:16:27 +0000 (19:16 +0000)]
Fix <rdar://problem/
6257675 > error: member reference base type ('NSUserDefaults *') is not a structure or union.
Teach Sema::ActOnMemberReferenceExpr() to look through local category implementations associated with the class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57995
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 22 Oct 2008 18:29:51 +0000 (18:29 +0000)]
Only create the target machine when emitting assembly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57993
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Oct 2008 17:49:05 +0000 (17:49 +0000)]
Add representation of base classes in the AST, and verify that we
don't have duplicated direct base classes.
Seriliazation of base class specifiers is not yet implemented.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57991
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 22 Oct 2008 17:40:45 +0000 (17:40 +0000)]
[LLVM up] Get rid of std::ostream usage from Backend.cpp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57990
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Oct 2008 17:29:21 +0000 (17:29 +0000)]
Add support for assembler-with-cpp (preprocessed .S files), patch by
Roman Divacky!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57988
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 22 Oct 2008 15:33:19 +0000 (15:33 +0000)]
Update server URL for checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57981
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Oct 2008 15:04:37 +0000 (15:04 +0000)]
QualType::isMoreQualifiedThan and isAtLeastAsQualifiedAs assert that we
aren't trying to compare with address-space qualifiers (for now).
Clean up handing of DeclRefExprs in Expr::isLvalue and refactor part
of the check into a static DeclCanBeLvalue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57980
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 22 Oct 2008 14:39:20 +0000 (14:39 +0000)]
Add test case for FuncDecl and function pointer variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57979
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Oct 2008 14:17:15 +0000 (14:17 +0000)]
Implement ranking of standard conversion sequences by their qualification
conversions (e.g., comparing int* -> const int* against
int* -> const volatile int*); see C++ 13.3.3.2p3 bullet 3.
Add Sema::UnwrapSimilarPointerTypes to simplify the control flow of
IsQualificationConversion and CompareQualificationConversion (and fix
the handling of the int* -> volatile int* conversion in the former).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57978
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 22 Oct 2008 13:44:38 +0000 (13:44 +0000)]
Add a bunch of getLValue* methods to RegionStore.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57977
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 22 Oct 2008 09:00:19 +0000 (09:00 +0000)]
Adjust parameter order to more natural one.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57964
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 22 Oct 2008 08:02:16 +0000 (08:02 +0000)]
Exprs of function type is another special case for ImplicitCast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57963
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Oct 2008 04:14:44 +0000 (04:14 +0000)]
Move Sema::GetNonReferenceType to QualType::getNonReferenceType and make it inline
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57951
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Oct 2008 03:52:06 +0000 (03:52 +0000)]
some minor cleanups to ParseObjCTypeName:
1. Remove a bogus assertion, clients other than sema can return a
null pointer from actions that result in ParseTypeName returning null.
2. Remove dead RParenLoc variable.
3. Simplify control flow handling error conditions.
4. On a major failure, we should skip until ')' not until '}'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57949
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 22 Oct 2008 03:28:13 +0000 (03:28 +0000)]
Update to use raw_ostream for PrintModulePass.
- Stop playing fast and loose with the std stream.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57948
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Oct 2008 00:38:21 +0000 (00:38 +0000)]
Fix a thinko in the qualification-conversion check when the qualificaitons are disjoint, and add some overloading-based tests of qualification conversions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57942
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 22 Oct 2008 00:03:08 +0000 (00:03 +0000)]
Functions can be lvalues in C++, but not modifiable lvalues
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57941
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 21 Oct 2008 23:54:00 +0000 (23:54 +0000)]
Commito, didn't mean to remove this header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57938
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 21 Oct 2008 23:49:24 +0000 (23:49 +0000)]
[LLVM up] Add basic -S option to clang.
- Split backend related consumer out into Backend.cpp, replaces
LLVMCodeGenWriter.
- Structure follows llvm-gcc to some extent.
- Still need to implement all the options which impact code
generation and the optimization passes which llvm-gcc uses at
various levels.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57936
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 21 Oct 2008 23:43:52 +0000 (23:43 +0000)]
Initial step toward supporting qualification conversions (C++ 4.4).
Changes:
- Sema::IsQualificationConversion determines whether we have a qualification
conversion.
- Sema::CheckSingleAssignment constraints now follows the C++ rules in C++,
performing an implicit conversion from the right-hand side to the type of
the left-hand side rather than checking based on the C notion of
"compatibility". We now rely on the implicit-conversion code to
determine whether the conversion can happen or
not. Sema::TryCopyInitialization has an ugly reference-related
hack to cope with the initialization of references, for now.
- When building DeclRefExprs, strip away the reference type, since
there are no expressions whose type is a reference. We'll need to
do this throughout Sema.
- Expr::isLvalue now permits functions to be lvalues in C++ (but not
in C).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57935
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 21:56:56 +0000 (21:56 +0000)]
Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57931
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 21 Oct 2008 21:32:38 +0000 (21:32 +0000)]
Add coverage of part of getPrimaryDecl that was failing prior to
previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57930
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 21 Oct 2008 21:22:32 +0000 (21:22 +0000)]
Fix use of dyn_cast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57927
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 21 Oct 2008 19:55:09 +0000 (19:55 +0000)]
Add GetModule accessor to ModuleBuilder
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57924
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 19:49:01 +0000 (19:49 +0000)]
When conjuring symbols for compound assignments, use the promoted type to determine if the symbolic value as a "loc::" or "nonloc::" value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57917
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 21 Oct 2008 18:24:04 +0000 (18:24 +0000)]
Fix <rdar://problem/
6257645 > clang static analyzer crashes when encountering blocks as objects
ASTContext::isObjCObjectPointerType() needs to consider blocks as objects.
Note: My previous commit was done in the test directory...as a result, this commit was necessary.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57914
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 21 Oct 2008 18:21:45 +0000 (18:21 +0000)]
Fix <rdar://problem/
6257645 > clang static analyzer crashes when encountering blocks as objects
ASTContext::isObjCObjectPointerType() needs to consider blocks as objects.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57913
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 21 Oct 2008 16:14:35 +0000 (16:14 +0000)]
Cosmetic patch from João Paulo Rechi Vita
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57910
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 21 Oct 2008 16:13:35 +0000 (16:13 +0000)]
Preliminary support for function overloading
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57909
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 15:53:15 +0000 (15:53 +0000)]
Handle [NSAutoreleasePool addObject:] (an alternative way to add objects to the current autorelease pool).
Added initial code for tracking stack of autorelease pools.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57908
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 15:34:53 +0000 (15:34 +0000)]
Update Xcode project.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57907
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 21 Oct 2008 14:15:04 +0000 (14:15 +0000)]
Fix a crasher during error recovery in Parser::ParseObjCTypeName().
Found this while fixing another unrelated radar.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57904
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 21 Oct 2008 13:37:27 +0000 (13:37 +0000)]
Fix <rdar://problem/
6297052 > confused in some way by embedded /* */ comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57903
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 21 Oct 2008 13:04:43 +0000 (13:04 +0000)]
Update VC++ project files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57902
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 21 Oct 2008 11:46:36 +0000 (11:46 +0000)]
Tweak an expected-error to match the output. IMHO it is better to diagnose 'int (void)' because it has the same meaning in C and C++.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57901
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 21 Oct 2008 10:50:19 +0000 (10:50 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57899
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 21 Oct 2008 10:37:50 +0000 (10:37 +0000)]
Fix <rdar://problem/
6261178 > clang-on-xcode: [sema] multiple method warning is over enthusiastic.
Fix <rdar://problem/
6265257 > warnings for ambiguous message send swamp other warnings.
Reworked Sema::MatchTwoMethodDeclarations() to optionally match based on method size and alignment (the default in GCC). Changed Sema::LookupInstanceMethodInGlobalPool() to use this feature.
Added -Wno-struct-selector-match to driver, however didn't hook it up yet. Added a FIXME that says this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57898
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 21 Oct 2008 06:54:23 +0000 (06:54 +0000)]
Localize the special processing of array variable inside
GRExprEngine::VisitCast() so that other parts of the analyzer can be ignorant.
When we cast "array of type T" to "pointer to T", we get the loc::MemRegionVal
corresponding to the array variable. This is sufficient for BasicStore, but not
for RegionStore. RegionStore should get the element region for the first array
element in the cast. So next comes to the revamping of transfer functions for
different store model.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57897
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 21 Oct 2008 06:27:32 +0000 (06:27 +0000)]
Modify Store interface: GetSVal/SetSVal => Retrieve/Bind.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57896
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 06:00:04 +0000 (06:00 +0000)]
Add partial specialization of ImmutableList for GRStatePartialTrait.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57895
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 21 Oct 2008 05:41:03 +0000 (05:41 +0000)]
Rename:
RValues.h/cpp => SVals.h/cpp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57893
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 21 Oct 2008 05:29:26 +0000 (05:29 +0000)]
Process decls in RegionStore. Individual elements of fixed size arrays are
initialized to UndefinedVal.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57892
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 21 Oct 2008 05:27:10 +0000 (05:27 +0000)]
Add ElementRegion to represent memory chunks for array elements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57891
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 04:32:44 +0000 (04:32 +0000)]
Updated checker build
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57890
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 03:32:32 +0000 (03:32 +0000)]
Add fileid_iterator to SourceManager.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57878
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 03:32:15 +0000 (03:32 +0000)]
Added method to access the raw flags of Token.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57877
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 03:31:53 +0000 (03:31 +0000)]
Change signature for CheckDivideZero.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57876
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 21 Oct 2008 00:54:44 +0000 (00:54 +0000)]
Added the start of a prototype implementation of PCH based on token caching.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57863
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 20 Oct 2008 23:40:25 +0000 (23:40 +0000)]
Further improve path-sensitivity with divide-by-zero checking by assuming that a denominator cannot be zero even when the result of an '/' or '%' expression is unknown.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57855
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 20 Oct 2008 23:14:31 +0000 (23:14 +0000)]
Added test case inspired by <rdar://
6268365 >: recover path-sensitivity after compound assignment when the result of the assignment is not known.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57852
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 20 Oct 2008 23:13:25 +0000 (23:13 +0000)]
Used conjured symbols to recover path-sensitivity when the result of a compound assignment is UnknownVal().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57851
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Mon, 20 Oct 2008 22:53:06 +0000 (22:53 +0000)]
Fix <rdar://problem/
6268365 > Parser rejects property (dot notation) access on id<protocol>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57850
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Mon, 20 Oct 2008 18:19:10 +0000 (18:19 +0000)]
Sema::CheckCompareOperands() and ASTContext::mergeTypes(): Change handling of ObjC qualified id types to be consistent with gcc. This changes a handful of test case errors into warnings (diff will tell you which cases have changed).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57841
91177308 -0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Mon, 20 Oct 2008 08:12:48 +0000 (08:12 +0000)]
Add newline at the end of file, to silence compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57818
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:43:01 +0000 (07:43 +0000)]
eliminate ObjCPropertyAttrs an corresponding enums, just use
strcmp when needed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57817
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:39:53 +0000 (07:39 +0000)]
rearrange some code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57816
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:37:22 +0000 (07:37 +0000)]
more simplifications to error recovery in ParseObjCPropertyAttribute
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57815
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:36:58 +0000 (07:36 +0000)]
remove extraneous braces
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57814
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:24:39 +0000 (07:24 +0000)]
move some code around to make it fall through more, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57813
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:22:18 +0000 (07:22 +0000)]
reject properties completely in objc1 instead of emitting
weird errors about property attributes being unknown.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57812
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:15:22 +0000 (07:15 +0000)]
More property attribute recovery improvements. Instead of this:
crash.m:8:12: error: type name requires a specifier or qualifier
@property (readonlyx, getter=isAwesome) int _awesome;
^
crash.m:8:29: error: expected ';' at end of declaration list
@property (readonlyx, getter=isAwesome) int _awesome;
^
crash.m:8:39: error: expected identifier or '('
@property (readonlyx, getter=isAwesome) int _awesome;
^
we now get:
crash.m:8:12: error: unknown property attribute 'readonlyx'
@property (readonlyx, getter=isAwesome) int _awesome;
^
Also, we can eliminate isObjCPropertyAttribute now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57811
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:03:51 +0000 (07:03 +0000)]
add testcase for the recovery improvements in my last patch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57810
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 07:00:43 +0000 (07:00 +0000)]
significantly simplify and clean up error recovery in
ParseObjCPropertyAttribute. Before, on this code (where
a comma was forgotten):
@property (readonly getter=isAwesome) int _awesome;
we emitted:
crash.m:9:11: error: expected ')'
@property (readonly getter=isAwesome) int _awesome;
^
crash.m:9:37: error: type name requires a specifier or qualifier
@property (readonly getter=isAwesome) int _awesome;
^
crash.m:9:37: error: expected identifier or '('
crash.m:9:37: error: expected ';' at end of declaration list
crash.m:9:1: error: @property requires fields to be named
@property (readonly getter=isAwesome) int _awesome;
^
now we emit:
crash.m:9:21: error: expected ')'
@property (readonly getter=isAwesome) int _awesome;
^
crash.m:9:11: error: to match this '('
@property (readonly getter=isAwesome) int _awesome;
^
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57809
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 20 Oct 2008 06:58:23 +0000 (06:58 +0000)]
Updated checker build
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57808
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 06:51:33 +0000 (06:51 +0000)]
simplify some other code for __extension__ processing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57807
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 06:45:43 +0000 (06:45 +0000)]
implement a couple fixme's by implementing __extension__ properly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57806
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 06:33:53 +0000 (06:33 +0000)]
fix a crash on unnamed properties like:
@property (readonly) int : 4;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57805
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 06:15:13 +0000 (06:15 +0000)]
simplify some code by using ExpectAndConsume. When an error
occurs, skip to an @ or ; instead of to a } or ;. Properties
don't necessarily live in {}'s.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57804
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 06:10:06 +0000 (06:10 +0000)]
refactor a bunch of code:
Check for @end in ParseObjCInterfaceDeclList instead of in each caller
Handle @required and @optional with the same code
Add some fixmes about some apparently objc2 code that is being accepted
in objc1.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57803
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 05:57:40 +0000 (05:57 +0000)]
fix some minor error recovery bugs in ParseObjCInterfaceDeclList
where it would reject @required in non-protocols, but then go
ahead and tag methods with required anyway. Instead, if we see
this in something other than a protocol, just ignore the request.
Also, improve error recovery a bit when we see something bogus
inside an interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57798
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 05:46:22 +0000 (05:46 +0000)]
restructure the body of the ParseObjCInterfaceDeclList loop
to make it easier to understand. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57797
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 05:16:36 +0000 (05:16 +0000)]
Fix rdar://
6257721 by tightening up the block "snapshot" check, and
move it to its own predicate to make it more clear.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57796
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 04:57:38 +0000 (04:57 +0000)]
Support attributes in *yet another* place. Is there any place you
can't stick an attributes?
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57795
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 02:05:46 +0000 (02:05 +0000)]
Fix a parser bug where we let attributes interfere with our disambiguation
of whether a '(' was a grouping paren or the start of a function declarator.
This is PR2796.
Now we eat the attribute before deciding whether the paren is grouping or
not, then apply it to the resultant decl or to the first argument as needed.
One somewhat surprising aspect of this is that attributes interact with
implicit int in cases like this:
void a(x, y) // k&r style function
void b(__attribute__(()) x, y); // function with two implicit int arguments
void c(x, __attribute__(()) y); // error, can't have attr in identifier list.
Fun stuff.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57790
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 02:01:50 +0000 (02:01 +0000)]
fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57789
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 02:01:34 +0000 (02:01 +0000)]
fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57788
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Oct 2008 00:25:30 +0000 (00:25 +0000)]
Remove an implemented fixme, only treat < as a type specifier
when ObjC is turned on.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57787
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 19 Oct 2008 12:05:48 +0000 (12:05 +0000)]
Change a couple of cast<> to reinterpret_cast<>.
The casts<> require that "Decl.h" is included before "Type.h", use reinterpret_cast<> to remove that kind of dependency.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57781
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sun, 19 Oct 2008 06:42:38 +0000 (06:42 +0000)]
Add "argument key" processing similar to ccc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57780
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 19 Oct 2008 02:41:16 +0000 (02:41 +0000)]
ccc: Pass '-g' through to clang. Handle -weak_framework.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57779
91177308 -0d34-0410-b5e6-
96231b3b80d8