aboutsummaryrefslogtreecommitdiff
path: root/Driver
AgeCommit message (Collapse)Author
2008-07-16Remove a FIXME from RewriteObjC::RewriteObjCSynchronizedStmt().Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53696 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16RewriteObjC::Initialize(): add function decls used by @synchronized.Steve Naroff
This fixes <rdar://problem/6040143> clang ObjC rewriter: @synchronized keyword inserts undeclared objc functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53695 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16Two fixes:Steve Naroff
- Make sure ObjCIvarDecl propagates the bitfield width. - RewriteObjC::SynthesizeIvarOffsetComputation(): Avoid using the __OFFSETOF__ mumbo jumbo for bitfields (since it isn't legal C). This fixes <rdar://problem/5986079> clang ObjC rewriter: bitfields and ivar access don't mix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53694 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16RewriteObjC::RewriteObjCTryStmt():Don't synthesize a catch begin if there ↵Steve Naroff
are 0 catch clauses. This fixes <rdar://problem/5987211> clang ObjC rewriter: @try / @finally block produces unbalanced output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53679 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16Teach RewriteObjC::RewriteObjCMethodDecl() to deal with pointer to function ↵Steve Naroff
return types. This fixes <rdar://problem/6034961> clang ObjC rewriter: rewriting methods with function pointer return values does not work git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53678 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15Provide an "Analysis Scope" for Analyses so checks can either be run on code ↵Ted Kremenek
declarations (bodies) or Objective-C @implementation blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53584 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14Break off declaration of Analysis enum into Analyses.def. The driver options inTed Kremenek
clang.cpp now #include these definitions to create the command line options, and AnalysisConsumer #includes this file to generate the switch statement to create actions. Renamed -check-objc-methodsigs to -warn-objc-methodsigs. The "missing -dealloc" check is now optional: -warn-objc-missing-dealloc git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53575 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11Add new check: -check-objc-methodsigs. This check scans methods inTed Kremenek
ObjCImplementationDecls and sees if a ancestor class defines a method with the same selector but with a different type signature. Right now it just compares return types, and mainly looks at differences in primitive values. The checking will be expanded in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53482 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07In a report-XXXXX.html, make the title include the name of the file with the ↵Ted Kremenek
bug. Patch by Jean-Daniel Dupas! http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-July/002166.html git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53184 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-05add gentoo stable gcc headers path so that all tests pass here (CPATH isnt ↵Nuno Lopes
enough..) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53143 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03For the -dealloc checker, check the LangOptions to determine whether or not ↵Ted Kremenek
the code is compiled with GC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53098 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03Have BugReporter::getCFG and BugReporter::getLiveVariables returns pointers ↵Ted Kremenek
instead of references, because they can both fail on functions we cannot construct full CFGs for yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53081 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03Added static analysis check to see if a subclass of NSObject implements ↵Ted Kremenek
-dealloc, and whether or not that implementation calls [super dealloc]. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53075 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Unify the code path for the Dead Stores checker to always use the ↵Ted Kremenek
BugReporter interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53054 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Refactored some of the BugReporter interface so that data such as the ↵Ted Kremenek
ASTContext&, PathDiagnosticClient*, can be provided by an external source. Split BugReporter into BugReporter and GRBugReporter so checkers not based on GRExprEngine can still use the BugReporter mechanism. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53048 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02GRExprEngine now expects the LiveVariables information to be provided by its ↵Ted Kremenek
creator. This allows an optimization in AnalysisConsumer where the same LiveVariables information is used between multiple analyses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53046 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Added version of CheckDeadStores that accepts a client-provided ↵Ted Kremenek
LiveVariables object. Modified the DeadStores logic in AnalysisConsumer.cpp to use the LiveVariables object created by the AnalysisManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53043 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Moved logic for -dump-cfg and -view-cfg into AnalysisConsumer.Ted Kremenek
Renamed -dump-cfg to -cfg-dump, and -view-cfg to -cfg-view. This naming better matches the same options for asts (e.g. -ast-dump). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53041 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Move -dump-live-variables logic to AnalysisConsumer.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53039 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Migrate CheckerConsumer diagnostics to the new AnalysisConsumer interface.Ted Kremenek
Remove CheckerConsumer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53029 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Move logic for "-checker-simple" to the new AnalysisConsumer interface.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53028 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Migrated driver logic for running the CF retain/release checker over to the ↵Ted Kremenek
new AnalysisConsumer interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53002 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02Added AnalysisConsumer, a meta-level ASTConsumer class to drive variousTed Kremenek
analyses. This potentially is the primordial origins of a Clang-equivalent "PassManager". The new AnalysisConsumer interface allows multiple analyses to be run from a single invocation of Clang. Migrated the logic of "-warn-dead-stores" and "-warn-uninit-values" to use the new AnalysisConsumer interface. The new interface results in a significant code reduction to incorporate an analysis into the Driver. Updated a test case to (correctly) acknowledge that it contains a dead store (this check wasn't being performed because it was previously masked by -warn-uninit-values). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52996 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-26Make clang work on 32 bit powerpc linux.Matthijs Kooijman
Patch by Nick Lewycky! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52777 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-26Link in LLVMAnalysis after LLVMCodeGen, since the latter depends on the formerMatthijs Kooijman
since LLVM r52748. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52776 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-26a temporary minimal hack to get clang building after the getStringValue ↵Chris Lattner
changes in llvm mainline. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52753 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-24Patch by Anders Bergh:Ted Kremenek
'There's not much to say about this patch, it just adds the Arch Linux gcc 4.3.1 header paths for i686 and amd64. The patch was generated using "svn diff" with clang at revision 52660. The paths aren't distribution-specific, so they should work for all Linux distributions using the default(?) names like "i686-pc-linux-gnu".' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52665 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-21Implement printing for ObjCClassDecl's, patch by Jean-Daniel Dupas!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52598 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-21Switch 'super' from being a weird cast thing to being a predefined expr node.Chris Lattner
Patch by David Chisnall with objc rewriter and stmtdumper updates from me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52580 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-20Updated call to dead stores to use proper arguments.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52560 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-17Change self/_cmd to be instances of ImplicitParamDecl instead of ParmVarDecl.Chris Lattner
Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52422 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-13Allow -parse-noop -verify options to be used together.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52249 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-09-Changes to TagDecl:Argyrios Kyrtzidis
Added TagKind enum. Added getTagKind() method. Added convenience methods: isEnum(), isStruct(), isUnion(), isClass(). -RecordDecl/CXXRecordDecl::Create() accept a TagKind enum instead of a DeclKind one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52160 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-09Get -serialize working again, plus a bit of minor cleanup.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52152 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06Use a common SourceManager when processing multiple files. This allows us ↵Ted Kremenek
to cache the contents of source files already loaded from disk. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52066 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06Fix crash when running with multiple source files. This can be improved.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52032 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04Moved LangOptions from TranslationUnit to ASTContext. This induced a ↵Ted Kremenek
variety of cleanups in some ASTConsumers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51943 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-03make rewrite macros insert a space when commenting out macros where the ↵Chris Lattner
token didn't lead with a space. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51896 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-02Fix <rdar://problem/5976164> clang ObjC rewriter: for ... in enumeration ↵Steve Naroff
inserts undeclared function (objc_enumerationMutation should be in preamble) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51880 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-31Two identifiers are not the same unless they have the same identifier info.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51827 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-31Added "InitializeTU" to ASTConsumer. This is used by Sema::ParseAST to pass aTed Kremenek
TranslationUnit object instead of an ASTContext. By default it calls Initialize(ASTConstext& Context) (to match with the current interface used by most ASTConsumers). Modified the ObjC-Rewriter to use InitializeTU, and to tell the TranslationUnit to not free its Decls. This is a workaround for: <rdar://problem/5966749> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51825 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-31Fix <rdar://problem/5917992> clang ObjC rewriter: #end from #if statement ↵Steve Naroff
lost in translation. Some fancy footwork to accommodate embedded preprocessor directives within an interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51815 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-31Fix <rdar://problem/5969777> clang ObjC rewriter: #imported file name ↵Steve Naroff
mysteriously commented out This fix involved tightening up needToScanForQualifiers(), which predated ObjCQualifiedIdType. It also includes a minor tweak to the code that searches for the beginning of the qualified type. If the AST contained the correct beginning of the declaration (i.e. the beginning of the declaration specifiers), this code would be more robust. Since it doesn't, we apply an adhoc heuristic. Note that DeclSpec contains this info...we just don't propagate it to the AST (at present). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51812 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-31Hack RewriteObjC::RewriteObjCStringLiteral() to include the filename in the ↵Steve Naroff
generated code (replacing any non-alphanumeric characters with "_"). This allows header files to contain ObjCStringLiterals. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51811 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-31Correctly preserve the order between -F and -I options.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51803 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30Use llvm::cl::desc for description of the -Wimplicit-function-declaration ↵Ted Kremenek
option. Patch by Holger Schurig! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51774 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30Fix crash with -serialize (reported to cfe-dev). The issue was Eli Friedman
essentially that we were destroying the declarations twice. (Note that we don't use -serialize directly in the testsuite, only SerializeTest.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51768 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29Implement support for -w, which silences all warnings. PR2384.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51683 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-28give location info to another paren expr.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51646 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-23minor changes, collect the range of an expr before rewriting the subexprsChris Lattner
no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51497 91177308-0d34-0410-b5e6-96231b3b80d8