]> granicus.if.org Git - clang/log
clang
16 years agoSome cleanups for the ambiguous derived-to-base conversion checks
Douglas Gregor [Fri, 24 Oct 2008 16:17:19 +0000 (16:17 +0000)]
Some cleanups for the ambiguous derived-to-base conversion checks

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58096 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSemantic analysis for C++ reinterpret_cast and const_cast. Patch by Sebastian Redl.
Douglas Gregor [Fri, 24 Oct 2008 15:36:09 +0000 (15:36 +0000)]
Semantic analysis for C++ reinterpret_cast and const_cast. Patch by Sebastian Redl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58094 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix scan-build's processing of clang's analysis arguments. Patch by Nikita Zhuk!
Ted Kremenek [Fri, 24 Oct 2008 15:11:58 +0000 (15:11 +0000)]
Fix scan-build's processing of clang's analysis arguments.  Patch by Nikita Zhuk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58093 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoYet another update to the VC++ proj.
Steve Naroff [Fri, 24 Oct 2008 12:40:20 +0000 (12:40 +0000)]
Yet another update to the VC++ proj.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58091 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoThe Decl of an array region can be VarDecl or FieldDecl. Handle this in RegionStoreMa...
Zhongxing Xu [Fri, 24 Oct 2008 09:06:51 +0000 (09:06 +0000)]
The Decl of an array region can be VarDecl or FieldDecl. Handle this in RegionStoreManager::ArrayToPointer().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58086 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd random array and struct test code for SCA.
Zhongxing Xu [Fri, 24 Oct 2008 08:51:58 +0000 (08:51 +0000)]
Add random array and struct test code for SCA.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58085 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse #define trickery to de-XFAIL test/Coverage/codegen-gnu.m while
Daniel Dunbar [Fri, 24 Oct 2008 08:42:52 +0000 (08:42 +0000)]
Use #define trickery to de-XFAIL test/Coverage/codegen-gnu.m while
still getting coverage for non-IRgen cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58084 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement struct initialization. Make it into a recursive function. Also make
Zhongxing Xu [Fri, 24 Oct 2008 08:42:28 +0000 (08:42 +0000)]
Implement struct initialization. Make it into a recursive function. Also make
the array initialization code into a function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58083 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse #define trickery to de-XFAIL test/Coverage/codegen-next.m while
Daniel Dunbar [Fri, 24 Oct 2008 08:39:46 +0000 (08:39 +0000)]
Use #define trickery to de-XFAIL test/Coverage/codegen-next.m while
still getting coverage for non-IRgen cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58082 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't crash on invalid source locations in
Daniel Dunbar [Fri, 24 Oct 2008 08:38:36 +0000 (08:38 +0000)]
Don't crash on invalid source locations in
CGDebugInfo::getOrCreateCompileUnit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58081 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosvn:ignore test/SemaCXX/Output
Daniel Dunbar [Fri, 24 Oct 2008 08:18:23 +0000 (08:18 +0000)]
svn:ignore test/SemaCXX/Output

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58080 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPR2919: __builtin_types_compatible_p strips CRV qualifiers.
Daniel Dunbar [Fri, 24 Oct 2008 08:07:57 +0000 (08:07 +0000)]
PR2919: __builtin_types_compatible_p strips CRV qualifiers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58079 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoadd a missing file to project, alphabeticalize.
Chris Lattner [Fri, 24 Oct 2008 06:52:28 +0000 (06:52 +0000)]
add a missing file to project, alphabeticalize.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58078 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd printing method to ElementRegion.
Zhongxing Xu [Fri, 24 Oct 2008 06:30:07 +0000 (06:30 +0000)]
Add printing method to ElementRegion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58077 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse LINK_COMPONENTS instead of hard coding LLVM libraries.
Daniel Dunbar [Fri, 24 Oct 2008 06:24:13 +0000 (06:24 +0000)]
Use LINK_COMPONENTS instead of hard coding LLVM libraries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58076 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd printing method to RegionStoreManager.
Zhongxing Xu [Fri, 24 Oct 2008 06:01:33 +0000 (06:01 +0000)]
Add printing method to RegionStoreManager.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58074 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd printing with llvm::raw_ostream methods to SVals.
Zhongxing Xu [Fri, 24 Oct 2008 06:00:12 +0000 (06:00 +0000)]
Add printing with llvm::raw_ostream methods to SVals.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58073 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFirst non-embarrassing cut at checking for ambiguous derived-to-base
Douglas Gregor [Fri, 24 Oct 2008 04:54:22 +0000 (04:54 +0000)]
First non-embarrassing cut at checking for ambiguous derived-to-base
conversions.

Added PerformImplicitConversion, which follows an implicit conversion sequence
computed by TryCopyInitialization and actually performs the implicit
conversions, including the extra check for ambiguity mentioned above.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58071 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix 80-col violation.
Zhongxing Xu [Fri, 24 Oct 2008 04:33:15 +0000 (04:33 +0000)]
Fix 80-col violation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58070 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix linking error.
Zhongxing Xu [Fri, 24 Oct 2008 02:03:36 +0000 (02:03 +0000)]
Fix linking error.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58067 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a bunch of dummy methods to make RegionStoreManager non-virtual.
Zhongxing Xu [Fri, 24 Oct 2008 01:38:55 +0000 (01:38 +0000)]
Add a bunch of dummy methods to make RegionStoreManager non-virtual.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58061 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd file to VC++ project.
Steve Naroff [Fri, 24 Oct 2008 01:19:59 +0000 (01:19 +0000)]
Add file to VC++ project.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58059 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded getLValueElement() to RegionStore. Only handle constant array for now.
Zhongxing Xu [Fri, 24 Oct 2008 01:09:32 +0000 (01:09 +0000)]
Added getLValueElement() to RegionStore. Only handle constant array for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58058 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake the analyzer store (memory model) a command line option.
Ted Kremenek [Fri, 24 Oct 2008 01:04:59 +0000 (01:04 +0000)]
Make the analyzer store (memory model) a command line option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58056 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMap compilation units using FileEntry pointers instead of
Daniel Dunbar [Fri, 24 Oct 2008 00:46:51 +0000 (00:46 +0000)]
Map compilation units using FileEntry pointers instead of
FileIDs. This seems better conceptually and lets the SourceManager
handle details of mapping the location to a file ID.
 - In practice, fixes an assert because this code wasn't using
   getPhysicalLoc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58055 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse llvm::errs() instead of cerr.
Ted Kremenek [Thu, 23 Oct 2008 23:55:40 +0000 (23:55 +0000)]
Use llvm::errs() instead of cerr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58054 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoConvert InheritanceHierarchyWriter to use llvm::raw_ostream instead of std::ostream.
Ted Kremenek [Thu, 23 Oct 2008 23:51:23 +0000 (23:51 +0000)]
Convert InheritanceHierarchyWriter to use llvm::raw_ostream instead of std::ostream.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58053 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded driver option "-cxx-inheritance-view" for viewing the C++ hierarchy of a class...
Ted Kremenek [Thu, 23 Oct 2008 23:36:29 +0000 (23:36 +0000)]
Added driver option "-cxx-inheritance-view" for viewing the C++ hierarchy of a class in GraphViz.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58051 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded iterators for types.
Ted Kremenek [Thu, 23 Oct 2008 23:35:43 +0000 (23:35 +0000)]
Added iterators for types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58050 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix regression in comparison of qualified id; == operator was being
Daniel Dunbar [Thu, 23 Oct 2008 23:30:52 +0000 (23:30 +0000)]
Fix regression in comparison of qualified id; == operator was being
created with LHS and RHS whose types didn't match.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58049 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd some files to VC++ project.
Steve Naroff [Thu, 23 Oct 2008 23:20:50 +0000 (23:20 +0000)]
Add some files to VC++ project.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58047 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdated Xcode project.
Ted Kremenek [Thu, 23 Oct 2008 23:15:03 +0000 (23:15 +0000)]
Updated Xcode project.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58046 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFor Radar reporting, null dereferences should be default classified as "Crash/Hang...
Ted Kremenek [Thu, 23 Oct 2008 21:36:52 +0000 (21:36 +0000)]
For Radar reporting, null dereferences should be default classified as "Crash/Hang/Data loss" <rdar://problem/6315624>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58045 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoClean up and document the representation of C++ base classes
Douglas Gregor [Thu, 23 Oct 2008 18:13:27 +0000 (18:13 +0000)]
Clean up and document the representation of C++ base classes

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58040 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHook "fast" code generation to -O0.
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

16 years agoAdd -O[0-3s] support (following llvm-gcc).
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

16 years agoAdd an assertion to make our intention more clear.
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

16 years agoIf NDEBUG is set, don't include any of the code for visualizing inheritance hierarchies
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

16 years agoLet StoreManager do different cast on arrays. BasicStore will just keep it intact.
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

16 years agoUpdated checker build.
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

16 years agoTemporarily mark this test XFAIL.
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

16 years agoDisable warning about potential leaks of returned values until we test it a little...
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

16 years agoAdded a method to ElementRegion.
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

16 years agoAdd support for conversions from a pointer-to-derived to a
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

16 years agoUpdate Xcode project. We still get a link error, however, because of an LLVM library...
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

16 years agoWarn about potentially leaked objects that are returned from methods whose names...
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

16 years agoFix <rdar://problem/6312683> clang block rewriter:
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

16 years agoRestrict creation of OverloadedFunctionDecl only to C++ (it was getting used for...
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

16 years agoFix <rdar://problem/6311947> clang on xcode (regression): error: use of undeclared...
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

16 years agoUpdated checker build.
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

16 years agoRemove the GraphWriter-based version of the C++ class inheritance visualization,...
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

16 years agoAdded GraphViz visualization of C++ inheritance hierarchies.
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

16 years agoNow that DeclRefExpr accepts a NamedDecl, use a DeclRefExpr for when a CXXFieldDecl...
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

16 years agoEnhance reference-count checker to correctly identify CG "release" functions. This...
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

16 years agoFix <rdar://problem/6257675> error: member reference base type ('NSUserDefaults ...
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

16 years agoOnly create the target machine when emitting assembly.
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

16 years agoAdd representation of base classes in the AST, and verify that we
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

16 years ago[LLVM up] Get rid of std::ostream usage from Backend.cpp
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

16 years agoAdd support for assembler-with-cpp (preprocessed .S files), patch by
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

16 years agoUpdate server URL for checker build.
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

16 years agoQualType::isMoreQualifiedThan and isAtLeastAsQualifiedAs assert that we
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

16 years agoAdd test case for FuncDecl and function pointer variable.
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

16 years agoImplement ranking of standard conversion sequences by their qualification
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

16 years agoAdd a bunch of getLValue* methods to RegionStore.
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

16 years agoAdjust parameter order to more natural one.
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

16 years agoExprs of function type is another special case for ImplicitCast.
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

16 years agoMove Sema::GetNonReferenceType to QualType::getNonReferenceType and make it inline
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

16 years agosome minor cleanups to ParseObjCTypeName:
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

16 years agoUpdate to use raw_ostream for PrintModulePass.
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

16 years agoFix a thinko in the qualification-conversion check when the qualificaitons are disjoi...
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

16 years agoFunctions can be lvalues in C++, but not modifiable lvalues
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

16 years agoCommito, didn't mean to remove this header.
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

16 years ago[LLVM up] Add basic -S option to clang.
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

16 years agoInitial step toward supporting qualification conversions (C++ 4.4).
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

16 years agoUpdated checker build.
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

16 years agoAdd coverage of part of getPrimaryDecl that was failing prior to
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

16 years agoFix use of dyn_cast.
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

16 years agoAdd GetModule accessor to ModuleBuilder
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

16 years agoWhen conjuring symbols for compound assignments, use the promoted type to determine...
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

16 years agoFix <rdar://problem/6257645> clang static analyzer crashes when encountering blocks...
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

16 years agoFix <rdar://problem/6257645> clang static analyzer crashes when encountering blocks...
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

16 years agoCosmetic patch from João Paulo Rechi Vita
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

16 years agoPreliminary support for function overloading
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

16 years agoHandle [NSAutoreleasePool addObject:] (an alternative way to add objects to the curre...
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

16 years agoUpdate Xcode project.
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

16 years agoFix a crasher during error recovery in Parser::ParseObjCTypeName().
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

16 years agoFix <rdar://problem/6297052> confused in some way by embedded /* */ comments.
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

16 years agoUpdate VC++ project files.
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

16 years agoTweak an expected-error to match the output. IMHO it is better to diagnose 'int ...
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

16 years agoFix typo.
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

16 years agoFix <rdar://problem/6261178> clang-on-xcode: [sema] multiple method warning is over...
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

16 years agoLocalize the special processing of array variable inside
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

16 years agoModify Store interface: GetSVal/SetSVal => Retrieve/Bind.
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

16 years agoAdd partial specialization of ImmutableList for GRStatePartialTrait.
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

16 years agoRename:
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

16 years agoProcess decls in RegionStore. Individual elements of fixed size arrays are
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

16 years agoAdd ElementRegion to represent memory chunks for array elements.
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

16 years agoUpdated checker build
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

16 years agoAdd fileid_iterator to SourceManager.
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

16 years agoAdded method to access the raw flags of Token.
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