summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [analyzer] Move the files in lib/StaticAnalyzer to lib/StaticAnalyzer/Core.Argyrios Kyrtzidis2011-02-0840-48/+64
| | | | | | | Eventually there will also be a lib/StaticAnalyzer/Frontend that will handle initialization and checker registration. Yet another library to avoid cyclic dependencies between Core and Checkers. llvm-svn: 125124
* [analyzer] lib/StaticAnalyzer/Checkers/ExprEngineExperimentalChecks.cpp -> ↵Argyrios Kyrtzidis2011-02-082-1/+1
| | | | | | lib/StaticAnalyzer/Checkers/ExperimentalChecks.cpp llvm-svn: 125123
* [analyzer] lib/StaticAnalyzer/Checkers/ExprEngineExperimentalChecks.h -> ↵Argyrios Kyrtzidis2011-02-0811-12/+12
| | | | | | lib/StaticAnalyzer/Checkers/ExperimentalChecks.h llvm-svn: 125122
* [analyzer] lib/StaticAnalyzer/Checkers/ExprEngineInternalChecks.h -> ↵Argyrios Kyrtzidis2011-02-0832-32/+32
| | | | | | lib/StaticAnalyzer/Checkers/InternalChecks.h llvm-svn: 125121
* Split the serialized representation for the detailed preprocessingDouglas Gregor2011-02-082-190/+225
| | | | | | | | | | record away from the core processor record. The tangling of these two data structures led to some inefficiencies (e.g., deserializing all of the detailed preprocessing record when we didn't need it, such as while performing code completion) along with some unnecessary ugliness. llvm-svn: 125117
* AST: support for pre-arg expressions on CallExpr subclassesPeter Collingbourne2011-02-081-11/+24
| | | | llvm-svn: 125115
* StmtPrinter: factor out arg printing code to PrintCallArgsPeter Collingbourne2011-02-081-3/+8
| | | | llvm-svn: 125114
* Allow multiple -B prefixes. Patch by Joerg Sonnenberger.Benjamin Kramer2011-02-081-6/+12
| | | | llvm-svn: 125111
* Clear the linkage cache recursively. Fixes PR8926.John McCall2011-02-081-0/+31
| | | | llvm-svn: 125104
* In Sema::CheckShadow, get the DeclContext from the variable that we are checkingArgyrios Kyrtzidis2011-02-081-4/+3
| | | | | | | | instead from the Scope; Inner scopes in bodies don't have DeclContexts associated with them. Fixes http://llvm.org/PR9160 & rdar://problem/8966163. llvm-svn: 125097
* Support for objextive-c++ use of property-dot syntax as receiverFariborz Jahanian2011-02-083-7/+10
| | | | | | | in liu of a class method getter. // rdar://8962253 llvm-svn: 125094
* Update the writing of the block-information block in the AST fileDouglas Gregor2011-02-081-2/+82
| | | | | | | format, so that llvm-bcanalyzer knows about all of the various record kinds. llvm-svn: 125086
* Reorganize CodeGen{Function,Module} to eliminate the unfortunateJohn McCall2011-02-0821-499/+511
| | | | | | | | Block{Function,Module} base class. Minor other refactorings. Fixed a few address-space bugs while I was there. llvm-svn: 125085
* Extend the const capture optimization to C++ record types with noJohn McCall2011-02-081-5/+42
| | | | | | mutable fields and with trivial destructors and copy constructors. llvm-svn: 125073
* Sema::MaybeBindToTemporary() shouldn't treat any expression returningDouglas Gregor2011-02-081-11/+3
| | | | | | | | | a glvalue as a temporary. Previously, we were enumerating all of the cases that coul return glvalues and might be called with Sema::MaybeBindToTemporary(), but that was gross and we missed the Objective-C property reference case. llvm-svn: 125070
* Convert RecordLayout::NonVirtualAlign to CharUnits. No change inKen Dyck2011-02-083-9/+16
| | | | | | functionality intended. llvm-svn: 125069
* dgregor accidentally killed this assert, but on investigation, it can fireJohn McCall2011-02-081-18/+10
| | | | | | on invalid code and we don't really care, so kill it harder. llvm-svn: 125068
* Support for objc use of property-dot syntax as receiverFariborz Jahanian2011-02-081-0/+4
| | | | | | | in liu of a class method getter. objc++ uses a different code path and is more involved (TBD). llvm-svn: 125061
* When copy-capturing values for a nested capture, use a BlockDeclRefExpr.John McCall2011-02-071-3/+11
| | | | llvm-svn: 125021
* A few more tweaks to the blocks AST representation: John McCall2011-02-0724-1060/+1279
| | | | | | | | | | | | | | | | | - BlockDeclRefExprs always store VarDecls - BDREs no longer store copy expressions - BlockDecls now store a list of captured variables, information about how they're captured, and a copy expression if necessary With that in hand, change IR generation to use the captures data in blocks instead of walking the block independently. Additionally, optimize block layout by emitting fields in descending alignment order, with a heuristic for filling in words when alignment of the end of the block header is insufficient for the most aligned field. llvm-svn: 125005
* pre/post ++/-- for AltiVec vectors. (with builtins-ppc-altivec.c failure fixed)Anton Yartsev2011-02-072-23/+50
| | | | llvm-svn: 125000
* Fix self-host; if a thunk already exists and has available_externally ↵Anders Carlsson2011-02-061-2/+7
| | | | | | linkage, we should change its linkage instead of asserting. llvm-svn: 124986
* When building with optimizations, emit thunks with available_externally ↵Anders Carlsson2011-02-062-6/+43
| | | | | | linkage so devirtualized function calls can also be de-thunked. llvm-svn: 124984
* Simplify thunks code.Anders Carlsson2011-02-062-9/+7
| | | | llvm-svn: 124983
* Add a __has_feature check for default template arguments in functionDouglas Gregor2011-02-051-0/+1
| | | | | | templates, a C++0x feature. llvm-svn: 124973
* Improve our uniquing of file entries when files are re-saved or areDouglas Gregor2011-02-056-42/+67
| | | | | | | | | | | | | | overridden via remapping. Thus, when we create a "virtual" file in the file manager, we still stat() the real file that lives behind it so that we can provide proper uniquing based on inodes. This helps keep the file manager much more consistent. To take advantage of this when reparsing files in libclang, we disable the use of the stat() cache when reparsing or performing code completion, since the stat() cache is very likely to be out of date in this use case. llvm-svn: 124971
* Basic implementation of inherited constructors. Only generates declarations, ↵Sebastian Redl2011-02-055-6/+281
| | | | | | and probably only works for very basic use cases. llvm-svn: 124970
* Pass a 'ForVTable' flag to GetAddrOfThunk and pass it along to ↵Anders Carlsson2011-02-052-6/+8
| | | | | | | | GetOrCreateLLVMFunction so that we won't assert when building a thunk for an implicit virtual member function that is not marked used. llvm-svn: 124967
* [analyzer] Fix a false positive of the 'self' initialization checker.Argyrios Kyrtzidis2011-02-051-4/+20
| | | | | | | | | | | | | | | | | | | A common pattern in classes with multiple initializers is to put the subclass's common initialization bits into a static function that receives the value of 'self', e.g: if (!(self = [super init])) return nil; if (!(self = _commonInit(self))) return nil; It was reported that 'self' was not set to the result of [super init]. Until we can use inter-procedural analysis, in such a call, transfer the ObjCSelfInitChecker flags associated with 'self' to the result of the call. Fixes rdar://8937441 & http://llvm.org/PR9094 llvm-svn: 124940
* When the out-of-line definition differs from the declaration in the return type,Argyrios Kyrtzidis2011-02-051-1/+5
| | | | | | | | | say "out-of-line definition differ from the declaration in the return type" instead of the silly "functions that differ only in their return type cannot be overloaded". Addresses rdar://7980179. llvm-svn: 124939
* Re-land r124768, with a fix for PR9130.Anders Carlsson2011-02-055-21/+24
| | | | | | We now emit everything except unused implicit virtual member functions when building the vtable. llvm-svn: 124935
* Don't suggest -Wuninitialized fixits for uninitialized enum types.Ted Kremenek2011-02-051-1/+3
| | | | llvm-svn: 124924
* -Wselector should warn on implemented selectors onlyFariborz Jahanian2011-02-041-1/+5
| | | | | | | | when selector metadata is generated, which is triggered by at least on class implementation. This is to match gcc's behavior. // rdar://8851684. llvm-svn: 124909
* Assert during instantiation of blocks that we've captured everything thatJohn McCall2011-02-041-39/+61
| | | | | | we captured in the dependent case. llvm-svn: 124887
* Add better support for ARM EABI triples.Bob Wilson2011-02-041-10/+22
| | | | | | Patch by Renato Golin! llvm-svn: 124878
* Driver: Fix spurious warning (from -cc1) about unused -fapple-kext on C inputs.Daniel Dunbar2011-02-041-1/+1
| | | | llvm-svn: 124875
* Improve our handling of the current instantiation for qualifiedDouglas Gregor2011-02-041-25/+11
| | | | | | | | | | | | | | id-expression, e.g., CurrentClass<T>::member Previously, if CurrentClass<T> was dependent and not complete, we would treat it as a dependent-scoped declaration reference expression, even if CurrentClass<T> referred to the current instantiation. Fixes PR8966 and improves type checking of templates. llvm-svn: 124867
* Before checking bitfield initialization, make sure that neither theDouglas Gregor2011-02-041-0/+7
| | | | | | | bit-field width nor the initializer value are type- or value-dependent. Fixes PR8712. llvm-svn: 124866
* When calling a bound pointer to member function, check theDouglas Gregor2011-02-041-0/+20
| | | | | | | cv-qualifiers on the object against the cv-qualifiers on the member function. Fixes PR8315. llvm-svn: 124865
* Tweak my fix for PR8748, and update the incorrect PR number in the test case.Douglas Gregor2011-02-042-2/+4
| | | | llvm-svn: 124863
* Implement proper (de-)serialization for explicit template argumentDouglas Gregor2011-02-044-67/+77
| | | | | | | lists with zero template arguments. Fixes some seriously scary crashers in C++ PCH. llvm-svn: 124862
* Fix a crash-on-invalid where we were trying to parse C++ constructs inDouglas Gregor2011-02-041-2/+3
| | | | | | | C, then hitting an assertion because C code shouldn't try to parse optional nested-name-specifiers. Fixes PR9137. llvm-svn: 124860
* Downgrade error about attribute 'iboutlet' and 'ibaction' being applied to ↵Ted Kremenek2011-02-041-3/+3
| | | | | | anything but a instance method to a warning. llvm-svn: 124858
* Tighten up the semantics of default template arguments, per C++0xDouglas Gregor2011-02-042-4/+17
| | | | | | [temp.param]p9 and C++ DR226. Fixes PR8747. llvm-svn: 124856
* When a function template's template parameter has a default argument,Douglas Gregor2011-02-041-2/+2
| | | | | | | | | | it's okay for the following template parameters to not have default arguments (since those template parameters can still be deduced). Also, downgrade the error about default template arguments in function templates to an extension warning, since this is a harmless C++0x extension. llvm-svn: 124855
* build: Add support for DISABLE_DEFAULT_STRICT_ALIASING, which does what oneDaniel Dunbar2011-02-042-3/+10
| | | | | | might expect. llvm-svn: 124848
* minor refactoring of -fapple-kext stuff.Fariborz Jahanian2011-02-041-8/+6
| | | | llvm-svn: 124837
* What was I thinking?Fariborz Jahanian2011-02-041-3/+1
| | | | llvm-svn: 124835
* -fapple-kext cannot have 'weak' visibility in thisFariborz Jahanian2011-02-042-17/+39
| | | | | | abi. llvm-svn: 124834
* If any Fix-Its attached to a diagnostic have invalid source locationsDouglas Gregor2011-02-031-0/+13
| | | | | | | or source locations that refer into a macro instantiation, delete all of the Fix-Its on that diagnostic. llvm-svn: 124833
OpenPOWER on IntegriCloud