]> granicus.if.org Git - clang/log
clang
15 years agoThe canonical type of typeof or decltype with a dependent type is itself,
Douglas Gregor [Wed, 8 Jul 2009 00:03:05 +0000 (00:03 +0000)]
The canonical type of typeof or decltype with a dependent type is itself,
not Context.DependentTy. I'll let Anders check in the test case for this one...

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

15 years agoOverload resolution prefers non-templates to templates
Douglas Gregor [Tue, 7 Jul 2009 23:38:56 +0000 (23:38 +0000)]
Overload resolution prefers non-templates to templates

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

15 years agoTemplate argument deduction from a call has improved a bit
Douglas Gregor [Tue, 7 Jul 2009 23:12:18 +0000 (23:12 +0000)]
Template argument deduction from a call has improved a bit

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

15 years agoImprove template argument deduction from a call. In particular,
Douglas Gregor [Tue, 7 Jul 2009 23:09:34 +0000 (23:09 +0000)]
Improve template argument deduction from a call. In particular,
implement C++ [temp.deduct.call]p3b3, which allows a template-id
parameter to match a derived class of the argument, while deducing
template arguments.

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

15 years agoExtra vector element initializers in OpenCL is an error, not a warning.
Nate Begeman [Tue, 7 Jul 2009 21:53:06 +0000 (21:53 +0000)]
Extra vector element initializers in OpenCL is an error, not a warning.

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

15 years agoImplement checking of exception spec compatibility for overriding virtual functions.
Sebastian Redl [Tue, 7 Jul 2009 20:29:57 +0000 (20:29 +0000)]
Implement checking of exception spec compatibility for overriding virtual functions.

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

15 years agoSome (most) type trait expressions require that the argument passed in is a complete...
Anders Carlsson [Tue, 7 Jul 2009 19:06:02 +0000 (19:06 +0000)]
Some (most) type trait expressions require that the argument passed in is a complete type.

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

15 years agoDiagnose, and not crash, when taking address of property expression.
Fariborz Jahanian [Tue, 7 Jul 2009 18:50:52 +0000 (18:50 +0000)]
Diagnose, and not crash, when taking address of property expression.

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

15 years agoConvert the CharInfo table to be statically initialized, instead of dynamically initi...
Chris Lattner [Tue, 7 Jul 2009 17:09:54 +0000 (17:09 +0000)]
Convert the CharInfo table to be statically initialized, instead of dynamically initialized.  Patch by Ryan Flynn!

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

15 years agoTighten up the conditions under which we build an implicit function
Douglas Gregor [Tue, 7 Jul 2009 17:00:05 +0000 (17:00 +0000)]
Tighten up the conditions under which we build an implicit function
declaration for a builtin.

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

15 years agoMake ASTContext explicitly keep track of the declaration for the C
Douglas Gregor [Tue, 7 Jul 2009 16:35:42 +0000 (16:35 +0000)]
Make ASTContext explicitly keep track of the declaration for the C
FILE type, rather than using name lookup to find FILE within the
translation unit. Within precompiled headers, FILE is treated as yet
another "special type" (like __builtin_va_list).

This change should provide a performance improvement (not verified),
since the lookup into the translation unit declaration
forces the (otherwise unneeded) construction of a large hash table.
More importantly, with precompiled headers, the construction
of that table requires deserializing most of the top-level
declarations from the precompiled header, which are then unused.

Fixes PR 4509.

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

15 years agoA few change per Doug's feedback.
Fariborz Jahanian [Tue, 7 Jul 2009 16:24:08 +0000 (16:24 +0000)]
A few change per Doug's feedback.
- Fariborz

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

15 years agoFix comment.
Zhongxing Xu [Tue, 7 Jul 2009 07:14:55 +0000 (07:14 +0000)]
Fix comment.

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

15 years agofix an out-of-date comment.
Chris Lattner [Tue, 7 Jul 2009 05:05:42 +0000 (05:05 +0000)]
fix an out-of-date comment.

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

15 years agopic16 preproc defs.
Sanjiv Gupta [Tue, 7 Jul 2009 04:42:23 +0000 (04:42 +0000)]
pic16 preproc defs.

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

15 years agofix comment.
Zhongxing Xu [Tue, 7 Jul 2009 01:36:53 +0000 (01:36 +0000)]
fix comment.

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

15 years agoRefactor DeclLocResolver/StmtLocResolver into a more functional style by removing...
Argyrios Kyrtzidis [Tue, 7 Jul 2009 00:53:31 +0000 (00:53 +0000)]
Refactor DeclLocResolver/StmtLocResolver into a more functional style by removing the search state
and by having their Visit* methods return the ASTLocation directly.

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

15 years agoIntroduce the notion of "Relocatable" precompiled headers, which are built
Douglas Gregor [Tue, 7 Jul 2009 00:12:59 +0000 (00:12 +0000)]
Introduce the notion of "Relocatable" precompiled headers, which are built
with a particular system root directory and can be used with a different
system root directory when the headers it depends on have been installed.
Relocatable precompiled headers rewrite the file names of the headers used
when generating the PCH file into the corresponding file names of the
headers available when using the PCH file.

Addresses <rdar://problem/7001604>.

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

15 years agoNewCastRegion: Handle casts *from* pointers to incomplete structs to other types.
Ted Kremenek [Mon, 6 Jul 2009 23:47:19 +0000 (23:47 +0000)]
NewCastRegion: Handle casts *from* pointers to incomplete structs to other types.

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

15 years agoFix 80 col violation.
Ted Kremenek [Mon, 6 Jul 2009 22:59:23 +0000 (22:59 +0000)]
Fix 80 col violation.

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

15 years agoRestructure NewCastRegion to use a switch statement that dispatches off the
Ted Kremenek [Mon, 6 Jul 2009 22:56:37 +0000 (22:56 +0000)]
Restructure NewCastRegion to use a switch statement that dispatches off the
region type. This better shows the logic of the method and allows the compiler
to check if we didn't handle a specific region kind.

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

15 years agoFix 80 col violation.
Ted Kremenek [Mon, 6 Jul 2009 22:40:36 +0000 (22:40 +0000)]
Fix 80 col violation.

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

15 years agoNewCastRegion: Handle casts to any Objective-C pointer, not just qualified ids.
Ted Kremenek [Mon, 6 Jul 2009 22:39:40 +0000 (22:39 +0000)]
NewCastRegion: Handle casts to any Objective-C pointer, not just qualified ids.

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

15 years agoImplement FIXME.
Ted Kremenek [Mon, 6 Jul 2009 22:34:50 +0000 (22:34 +0000)]
Implement FIXME.

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

15 years agoUnbreak build by including header.
Ted Kremenek [Mon, 6 Jul 2009 22:26:23 +0000 (22:26 +0000)]
Unbreak build by including header.

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

15 years agoStoreManager::NewCastRegion:
Ted Kremenek [Mon, 6 Jul 2009 22:23:45 +0000 (22:23 +0000)]
StoreManager::NewCastRegion:
- Refactor logic that creates ElementRegions into a help method 'MakeElementRegion'.
- Fix crash due to not handling StringRegions.  Casts of StringRegions now
  result in a new ElementRegion layered on the original StringRegion.

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

15 years agoMake 'BasicStoreManager' + 'NewCastRegion' testable from the command line using ...
Ted Kremenek [Mon, 6 Jul 2009 21:58:46 +0000 (21:58 +0000)]
Make 'BasicStoreManager' + 'NewCastRegion' testable from the command line using '-analyzer-store=basic-new-cast'.

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

15 years agoUpdate CMake files.
Argyrios Kyrtzidis [Mon, 6 Jul 2009 21:38:29 +0000 (21:38 +0000)]
Update CMake files.

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

15 years agoUse the "ASTLocation nomenclature" (instead of the ASTNode one) in index-test.cpp.
Argyrios Kyrtzidis [Mon, 6 Jul 2009 21:35:26 +0000 (21:35 +0000)]
Use the "ASTLocation nomenclature" (instead of the ASTNode one) in index-test.cpp.

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

15 years agoSome changes to ASTLocation's methods
Argyrios Kyrtzidis [Mon, 6 Jul 2009 21:35:20 +0000 (21:35 +0000)]
Some changes to ASTLocation's methods

-Change hasStmt() to isStmt()
-Add isDecl()
-Add getSourceRange()

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

15 years agoAdd some comments to the ASTLocation class.
Argyrios Kyrtzidis [Mon, 6 Jul 2009 21:35:09 +0000 (21:35 +0000)]
Add some comments to the ASTLocation class.

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

15 years agoMove the 'ResolveLocationInAST' function from the Frontend library to the Index library.
Argyrios Kyrtzidis [Mon, 6 Jul 2009 21:35:02 +0000 (21:35 +0000)]
Move the 'ResolveLocationInAST' function from the Frontend library to the Index library.

Also, cut down its comments; more comments will be added to ASTLocation.

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

15 years agoMove ASTLocation and DeclReferenceMap from the AST library to the Index library.
Argyrios Kyrtzidis [Mon, 6 Jul 2009 21:34:47 +0000 (21:34 +0000)]
Move ASTLocation and DeclReferenceMap from the AST library to the Index library.

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

15 years agoRename 'ASTNode' -> 'ASTLocation'.
Argyrios Kyrtzidis [Mon, 6 Jul 2009 21:34:20 +0000 (21:34 +0000)]
Rename 'ASTNode' -> 'ASTLocation'.

ASTLocation is a much better name for its intended purpose which to represent a "point" into the AST.

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

15 years agoNewCastRegion:
Ted Kremenek [Mon, 6 Jul 2009 21:01:16 +0000 (21:01 +0000)]
NewCastRegion:
- Have test for 'CodeTextRegion' dominate other region tests.
- Use 'getAsRecordType' instead of isa<RecordType>

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

15 years agoFix loop so that 'continue' statements actually cause the loop to iterate.
Ted Kremenek [Mon, 6 Jul 2009 20:53:52 +0000 (20:53 +0000)]
Fix loop so that 'continue' statements actually cause the loop to iterate.

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

15 years agoMove the new 'CastRegion' implementation from RegionStoreManager to StoreManager
Ted Kremenek [Mon, 6 Jul 2009 20:21:51 +0000 (20:21 +0000)]
Move the new 'CastRegion' implementation from RegionStoreManager to StoreManager
(its superclass). This will allow us to experiment with using the new CastRegion
with BasicStoreManager, and gradually phase out the old implementation.

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

15 years agoFix a problem with false diagnostics when comparing distinct NULL pointer types,...
Douglas Gregor [Mon, 6 Jul 2009 20:14:23 +0000 (20:14 +0000)]
Fix a problem with false diagnostics when comparing distinct NULL pointer types, from David Majnemer

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

15 years agoUpdate checker build.
Ted Kremenek [Mon, 6 Jul 2009 19:57:59 +0000 (19:57 +0000)]
Update checker build.

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

15 years agoFix PR 4489, a crash in PCH loading that occurs when loading the name
Douglas Gregor [Mon, 6 Jul 2009 18:54:52 +0000 (18:54 +0000)]
Fix PR 4489, a crash in PCH loading that occurs when loading the name
of a top-level declaration loads another top-level declaration of the
same name whose type depends on the first declaration having been
completed. This commit breaks the circular dependency by delaying
loads of top-level declarations triggered by loading a name until we
are no longer recursively loading types or declarations.

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

15 years agoFix <rdar://problem/7033733>. The CF_RETURNS_RETAINED attribute should work if the...
Ted Kremenek [Mon, 6 Jul 2009 18:30:43 +0000 (18:30 +0000)]
Fix <rdar://problem/7033733>.  The CF_RETURNS_RETAINED attribute should work if the return type on an Objective-C method is a CF type reference, not just an Objective-C object reference.

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

15 years agoParsing fix for out-of-line constructors, from Piotr Rak
Douglas Gregor [Mon, 6 Jul 2009 16:40:48 +0000 (16:40 +0000)]
Parsing fix for out-of-line constructors, from Piotr Rak

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

15 years agoFix out-of-source regression testing for makefiles
Douglas Gregor [Mon, 6 Jul 2009 16:35:57 +0000 (16:35 +0000)]
Fix out-of-source regression testing for makefiles

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

15 years agoKeep track of the Expr used to describe the size of an array type,
Douglas Gregor [Mon, 6 Jul 2009 15:59:29 +0000 (15:59 +0000)]
Keep track of the Expr used to describe the size of an array type,
from Enea Zaffanella!

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

15 years agoFix bitfield promotion in the presence of explicit casts, from Abrama Bagnara.
Douglas Gregor [Mon, 6 Jul 2009 15:38:40 +0000 (15:38 +0000)]
Fix bitfield promotion in the presence of explicit casts, from Abrama Bagnara.

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

15 years agoFurther cleanup of region invalidation code. No functionality change.
Zhongxing Xu [Mon, 6 Jul 2009 06:01:24 +0000 (06:01 +0000)]
Further cleanup of region invalidation code. No functionality change.

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

15 years agoAllocaRegion and SymbolicRegion are both boundable.
Zhongxing Xu [Mon, 6 Jul 2009 05:34:56 +0000 (05:34 +0000)]
AllocaRegion and SymbolicRegion are both boundable.

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

15 years agoStart to gradually move region invalidation code into store manager.
Zhongxing Xu [Mon, 6 Jul 2009 03:41:27 +0000 (03:41 +0000)]
Start to gradually move region invalidation code into store manager.
No functionality change.

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

15 years agoHaving tests that depend on previously created files is bad idea. Fix them to be...
Argyrios Kyrtzidis [Mon, 6 Jul 2009 00:03:47 +0000 (00:03 +0000)]
Having tests that depend on previously created files is bad idea. Fix them to be self-sufficient.

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

15 years agoFix for PR4502: add calculation of the integer conversion rank for
Eli Friedman [Sun, 5 Jul 2009 23:44:27 +0000 (23:44 +0000)]
Fix for PR4502: add calculation of the integer conversion rank for
wchar_t.

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

15 years agoMore tweaks to types for OpenBSD. Patch by Jonathan Gray.
Eli Friedman [Sun, 5 Jul 2009 22:31:18 +0000 (22:31 +0000)]
More tweaks to types for OpenBSD.  Patch by Jonathan Gray.

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

15 years agoMake use of the Index library through the index-test tool.
Argyrios Kyrtzidis [Sun, 5 Jul 2009 22:22:35 +0000 (22:22 +0000)]
Make use of the Index library through the index-test tool.

'index-test' is now able to provide additional info for a Decl, through multiple AST files:
-Find declarations
-Find definitions
-Find references

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

15 years agoIntroduce the 'Index' library.
Argyrios Kyrtzidis [Sun, 5 Jul 2009 22:22:19 +0000 (22:22 +0000)]
Introduce the 'Index' library.

Its purpose is to provide the basic infrastructure for cross-translation-unit analysis like indexing, refactoring, etc.

Currently it is very "primitive" and with no type-names support. It can provide functionality like
"show me all references of this function from these translation units".

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

15 years agoIntroduce the DeclReferenceMap class inside the AST library.
Argyrios Kyrtzidis [Sun, 5 Jul 2009 22:22:06 +0000 (22:22 +0000)]
Introduce the DeclReferenceMap class inside the AST library.

DeclReferenceMap (similar to ParentMap) is a helper class for mapping Decls to the AST nodes that reference them.
A client will initialize it by passing an ASTContext to its constructor and later use it to iterate over
the references of a Decl.
References are mapped and retrieved using the primary declaration (Decl::getPrimaryDecl()) of a particular Decl.

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

15 years agoIntroduce the virtual method Decl::getPrimaryDecl().
Argyrios Kyrtzidis [Sun, 5 Jul 2009 22:21:56 +0000 (22:21 +0000)]
Introduce the virtual method Decl::getPrimaryDecl().

When a Decl subclass can have multiple re-declarations in the same declaration context (like FunctionDecl),
getPrimaryDecl() will return a particular Decl that all of them will point to as the "primary" declaration.

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

15 years agoAvoid re-checking the parameters of a function, when trying to resolve a location.
Argyrios Kyrtzidis [Sun, 5 Jul 2009 22:21:46 +0000 (22:21 +0000)]
Avoid re-checking the parameters of a function, when trying to resolve a location.

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

15 years agoMake use of ASTNode for return value of clang::ResolveLocationInAST() and in the...
Argyrios Kyrtzidis [Sun, 5 Jul 2009 22:21:40 +0000 (22:21 +0000)]
Make use of ASTNode for return value of clang::ResolveLocationInAST() and in the index-test tool.

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

15 years agoIntroduce ASTNode class into the AST library.
Argyrios Kyrtzidis [Sun, 5 Jul 2009 22:21:28 +0000 (22:21 +0000)]
Introduce ASTNode class into the AST library.

ASTNode is an immutable pair of a Decl and Stmt. If Stmt is not null, Decl should be its immediate parent.

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

15 years agoDo an early check for function definition.
Argyrios Kyrtzidis [Sun, 5 Jul 2009 22:21:17 +0000 (22:21 +0000)]
Do an early check for function definition.

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

15 years agoPer PR4506, fix the type of size_t on OpenBSD.
Eli Friedman [Sun, 5 Jul 2009 18:47:56 +0000 (18:47 +0000)]
Per PR4506, fix the type of size_t on OpenBSD.

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

15 years agoCompoundLiteralRegion is boundable when it is not in the file scope.
Zhongxing Xu [Sat, 4 Jul 2009 11:43:03 +0000 (11:43 +0000)]
CompoundLiteralRegion is boundable when it is not in the file scope.

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

15 years agoCatch function redeclarations with incompatible exception specifications.
Sebastian Redl [Sat, 4 Jul 2009 11:39:00 +0000 (11:39 +0000)]
Catch function redeclarations with incompatible exception specifications.

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

15 years agoStringRegion is not boundable.
Zhongxing Xu [Sat, 4 Jul 2009 11:31:53 +0000 (11:31 +0000)]
StringRegion is not boundable.

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

15 years agoThis fixes the case where the wrong symbol is emitted leading to linking errors when...
Fariborz Jahanian [Fri, 3 Jul 2009 15:10:14 +0000 (15:10 +0000)]
This fixes the case where the wrong symbol is emitted leading to linking errors when you reference a class before defining it (GNU runtime).
Patch by David Chisnall.

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

15 years agoremove utility methods that are not very useful.
Zhongxing Xu [Fri, 3 Jul 2009 06:11:41 +0000 (06:11 +0000)]
remove utility methods that are not very useful.

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

15 years agoadd test case for r74407.
Zhongxing Xu [Fri, 3 Jul 2009 05:33:23 +0000 (05:33 +0000)]
add test case for r74407.

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

15 years agoUpdate checker build.
Ted Kremenek [Fri, 3 Jul 2009 03:26:09 +0000 (03:26 +0000)]
Update checker build.

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

15 years agoAdd an intermediate typedef for __builtin_va_tag to make it a bit easier
Eli Friedman [Fri, 3 Jul 2009 00:45:06 +0000 (00:45 +0000)]
Add an intermediate typedef for __builtin_va_tag to make it a bit easier
to deal with for AST pretty-printing/rewriting.  Patch by Abramo
Bagnara.

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

15 years agoRemove unused method.
Ted Kremenek [Fri, 3 Jul 2009 00:41:09 +0000 (00:41 +0000)]
Remove unused method.

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

15 years agoBasicStoreManager: Use SymbolManager::canSymbolicate() to determine if a variable...
Ted Kremenek [Fri, 3 Jul 2009 00:36:16 +0000 (00:36 +0000)]
BasicStoreManager: Use SymbolManager::canSymbolicate() to determine if a variable can be symbolicated.

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

15 years agoFix a horrible CFG bug reported in <rdar://problem/7027684>. The wrong successor
Ted Kremenek [Fri, 3 Jul 2009 00:10:50 +0000 (00:10 +0000)]
Fix a horrible CFG bug reported in <rdar://problem/7027684>. The wrong successor
block would get hooked up in some cases when processing empty compound
statements.

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

15 years agoRevert prev commit, we have much bigger problems because 2.3 is missing
Daniel Dunbar [Thu, 2 Jul 2009 23:58:07 +0000 (23:58 +0000)]
Revert prev commit, we have much bigger problems because 2.3 is missing
the subprocess module.

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

15 years agoAvoid @staticmethod to allow use with Python 2.3.
Daniel Dunbar [Thu, 2 Jul 2009 23:56:37 +0000 (23:56 +0000)]
Avoid @staticmethod to allow use with Python 2.3.

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

15 years agoReplace guarded calls in RegionStoreManager to
Ted Kremenek [Thu, 2 Jul 2009 22:16:42 +0000 (22:16 +0000)]
Replace guarded calls in RegionStoreManager to
ValueManager::getRegionValueSymbolVal() with unguarded calls to
ValueManager::getRegionValueSymbolValOrUnknown(). This changes centralizes the
decision of what values to symbolicate in SymbolManager rather than having it
scatter in RegionStoreManager.

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

15 years agoEnhance RegionStore to lazily symbolicate fields and array elements for
Ted Kremenek [Thu, 2 Jul 2009 22:02:15 +0000 (22:02 +0000)]
Enhance RegionStore to lazily symbolicate fields and array elements for
structures passed-by-value as function arguments.

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

15 years agoFix RUN line so this test doesn't hang.
Ted Kremenek [Thu, 2 Jul 2009 18:44:31 +0000 (18:44 +0000)]
Fix RUN line so this test doesn't hang.

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

15 years agoPatch to allocate list of bases in CXXRecordDecl
Fariborz Jahanian [Thu, 2 Jul 2009 18:26:15 +0000 (18:26 +0000)]
Patch to allocate list of bases in CXXRecordDecl
using ASTContxt allocation.

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

15 years agoStoreManagers: Use 'hasGlobalsStorage()' and 'hasParametersStorage()' instead of
Ted Kremenek [Thu, 2 Jul 2009 18:25:09 +0000 (18:25 +0000)]
StoreManagers: Use 'hasGlobalsStorage()' and 'hasParametersStorage()' instead of
directly consulting if a VarDecl is an implicit or actual parameter, a global,
etc.

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

15 years agoAdd a separate MemSpaceRegion for function/method arguments passed on the stack.
Ted Kremenek [Thu, 2 Jul 2009 18:14:59 +0000 (18:14 +0000)]
Add a separate MemSpaceRegion for function/method arguments passed on the stack.
This will simplify the logic of StoreManagers that want to specially reason
about the values of parameters.

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

15 years agoRemove commented methods. Add MemRegion::printStdErr().
Ted Kremenek [Thu, 2 Jul 2009 17:24:10 +0000 (17:24 +0000)]
Remove commented methods.  Add MemRegion::printStdErr().

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

15 years agoAdd support for retrieving the Doxygen comment associated with a given
Douglas Gregor [Thu, 2 Jul 2009 17:08:52 +0000 (17:08 +0000)]
Add support for retrieving the Doxygen comment associated with a given
declaration in the AST.

The new ASTContext::getCommentForDecl function searches for a comment
that is attached to the given declaration, and returns that comment,
which may be composed of several comment blocks.

Comments are always available in an AST. However, to avoid harming
performance, we don't actually parse the comments. Rather, we keep the
source ranges of all of the comments within a large, sorted vector,
then lazily extract comments via a binary search in that vector only
when needed (which never occurs in a "normal" compile).

Comments are written to a precompiled header/AST file as a blob of
source ranges. That blob is only lazily loaded when one requests a
comment for a declaration (this never occurs in a "normal" compile).

The indexer testbed now supports comment extraction. When the
-point-at location points to a declaration with a Doxygen-style
comment, the indexer testbed prints the associated comment
block(s). See test/Index/comments.c for an example.

Some notes:
  - We don't actually attempt to parse the comment blocks themselves,
  beyond identifying them as Doxygen comment blocks to associate them
  with a declaration.
  - We won't find comment blocks that aren't adjacent to the
  declaration, because we start our search based on the location of
  the declaration.
  - We don't go through the necessary hops to find, for example,
  whether some redeclaration of a declaration has comments when our
  current declaration does not. Similarly, we don't attempt to
  associate a \param Foo marker in a function body comment with the
  parameter named Foo (although that is certainly possible).
  - Verification of my "no performance impact" claims is still "to be
  done".

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

15 years agoLook through vector types when determining the base type of a type for declarator...
Douglas Gregor [Wed, 1 Jul 2009 23:58:14 +0000 (23:58 +0000)]
Look through vector types when determining the base type of a type for declarator printing. Bug found via the PCH tester

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

15 years agoUse Destroy for member initializer list clean up.
Fariborz Jahanian [Wed, 1 Jul 2009 23:35:25 +0000 (23:35 +0000)]
Use Destroy for member initializer list clean up.
Per Doug's comments. Doug please review.

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

15 years agoMinor code cleanup: pull variables into scope of 'if' statement, limiting their
Ted Kremenek [Wed, 1 Jul 2009 23:30:34 +0000 (23:30 +0000)]
Minor code cleanup: pull variables into scope of 'if' statement, limiting their
actual lifetime to their logical lifetime.

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

15 years agoFix PR 4489, a PCH crash during de-serialization.
Douglas Gregor [Wed, 1 Jul 2009 23:29:14 +0000 (23:29 +0000)]
Fix PR 4489, a PCH crash during de-serialization.

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

15 years agoTemporarily disable RegionStore for stack-addr-ps.c, as a new test case reveals
Ted Kremenek [Wed, 1 Jul 2009 23:24:11 +0000 (23:24 +0000)]
Temporarily disable RegionStore for stack-addr-ps.c, as a new test case reveals
a case where RegionStore doesn't create symbolic values for the fields of
structs that are passed-by-value.

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

15 years agoAdd a FIXME to RegionStore, do some minor code cleanup, and get RegionStore to
Ted Kremenek [Wed, 1 Jul 2009 23:19:52 +0000 (23:19 +0000)]
Add a FIXME to RegionStore, do some minor code cleanup, and get RegionStore to
pass misc-ps.m. Currently RegionStore/BasicStore don't do any special reasoning
about clang-style vectors, so we should return UnknownVal (in all cases) when
accessing their values via an array.

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

15 years agoUpdate for changes in LLVM. Hopefully this is the last one for a while.
Owen Anderson [Wed, 1 Jul 2009 23:14:14 +0000 (23:14 +0000)]
Update for changes in LLVM.  Hopefully this is the last one for a while.

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

15 years agoKeep track of more information within the template instantiation stack, e.g.,
Douglas Gregor [Wed, 1 Jul 2009 22:01:06 +0000 (22:01 +0000)]
Keep track of more information within the template instantiation stack, e.g.,
by distinguishing between substitution that occurs for template
argument deduction vs. explicitly-specifiad template arguments. This
is used both to improve diagnostics and to make sure we only provide
SFINAE in those cases where SFINAE should apply.

In addition, deal with the sticky issue where SFINAE only considers
substitution of template arguments into the *type* of a function
template; we need to issue hard errors beyond this point, as
test/SemaTemplate/operator-template.cpp illustrates.

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

15 years agoHold the LLVMContext by reference instead of by pointer.
Owen Anderson [Wed, 1 Jul 2009 21:23:16 +0000 (21:23 +0000)]
Hold the LLVMContext by reference instead of by pointer.

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

15 years agoUpdated CXXConstructorDecl AST node for ctor-initilaizer list.
Fariborz Jahanian [Wed, 1 Jul 2009 21:05:43 +0000 (21:05 +0000)]
Updated CXXConstructorDecl AST node for ctor-initilaizer list.
No change in functionality.

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

15 years agoFix thinko in r74506, test condition for floats was inverted.
Daniel Dunbar [Wed, 1 Jul 2009 20:37:45 +0000 (20:37 +0000)]
Fix thinko in r74506, test condition for floats was inverted.
 - Refactored slightly to make control flow more obvious.

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

15 years agoDriver: Mark some Compilation members const.
Daniel Dunbar [Wed, 1 Jul 2009 20:30:52 +0000 (20:30 +0000)]
Driver: Mark some Compilation members const.

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

15 years agoDriver: Move Compilation::Execute to Driver::ExecuteCompilation.
Daniel Dunbar [Wed, 1 Jul 2009 20:03:04 +0000 (20:03 +0000)]
Driver: Move Compilation::Execute to Driver::ExecuteCompilation.
 - The Compilation is just a helper class, it shouldn't have that amount of
   logic in it.

 - No functionality change.

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

15 years agoPatch to implement template types in ctor-initializer list.
Fariborz Jahanian [Wed, 1 Jul 2009 19:21:19 +0000 (19:21 +0000)]
Patch to implement template types in ctor-initializer list.
Also has fix for bugzilla-4469.

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

15 years agoDriver: Improve diagnostics for failed commands.
Daniel Dunbar [Wed, 1 Jul 2009 19:14:39 +0000 (19:14 +0000)]
Driver: Improve diagnostics for failed commands.
 - Not all tools give good error messages, and sometimes the tool can fail w/o
   any error (for example, when signalled).

 - We suppress this message when the failing command is the compiler and it
   failed normally (exit code == 1), under the assumption that it gave a good
   diagnostic.

For example, for a linker failure we now get:
--
ddunbar@lordcrumb:tmp$ clang a.c b.c
ld: duplicate symbol _x in /var/folders/cl/clrOX6SaG+moCeRKEI4PtU+++TI/-Tmp-/cc-bXYITq.o and /var/folders/cl/clrOX6SaG+moCeRKEI4PtU+++TI/-Tmp-/cc-6uK4jD.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
--

For a compiler crash we get:
--
ddunbar@lordcrumb:tmp$ clang t.i
Assertion failed: (CGT.getTargetData().getTypeAllocSizeInBits(STy) == RL.getSize()), function layoutStructFields, file CodeGenTypes.cpp, line 573.
0   clang-cc          0x0000000100f1f1f1 PrintStackTrace(void*) + 38
... stack trace and virtual stack trace follow ...
clang: error: compiler command failed due to signal 6 (use -v to see invocation)
--

But for a regular compilation failure we get the usual:
--
ddunbar@lordcrumb:tmp$ clang c.c
c.c:1:6: error: invalid token after top level declarator
int x
     ^
1 diagnostic generated.
--

 - No test case, not amenable to non-executable testing. :/

 - <rdar://problem/6945613>

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

15 years agoDriver: Add Source argument for Commands to hold the Action which caused a
Daniel Dunbar [Wed, 1 Jul 2009 19:02:28 +0000 (19:02 +0000)]
Driver: Add Source argument for Commands to hold the Action which caused a
Command to be generated, to support more advanced diagnostics.
 - No functionality change.

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

15 years agoAdd header search path for Gentoo stable, x86_64 version.
Sebastian Redl [Wed, 1 Jul 2009 18:59:43 +0000 (18:59 +0000)]
Add header search path for Gentoo stable, x86_64 version.

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

15 years agoUpdate for LLVMContext+Module change.
Owen Anderson [Wed, 1 Jul 2009 17:00:06 +0000 (17:00 +0000)]
Update for LLVMContext+Module change.

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

15 years agoTwo fixes to make Clang build on Visual C++ (again), from Alisdair Meredith.
Douglas Gregor [Wed, 1 Jul 2009 15:12:53 +0000 (15:12 +0000)]
Two fixes to make Clang build on Visual C++ (again), from Alisdair Meredith.

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