summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Moved here from LLVM Clang's configuration options and related macros.Oscar Fuentes2011-02-032-0/+8
| | | | llvm-svn: 124825
* [analyzer] Fix a crash until we can handle temporary struct objects properly.Argyrios Kyrtzidis2011-02-031-1/+5
| | | | llvm-svn: 124822
* Add __has_feature() for each of the type traitsDouglas Gregor2011-02-031-0/+19
| | | | llvm-svn: 124820
* Clean up of -fapple-kext abi code. No change otherwise.Fariborz Jahanian2011-02-034-12/+10
| | | | llvm-svn: 124807
* Implement -Woverloaded-virtual.Argyrios Kyrtzidis2011-02-032-1/+103
| | | | | | | | | | | | The difference with gcc is that it warns if you overload virtual methods only if the method doesn't also override any method. This is to cut down on the number of warnings and make it more useful like reported here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20423. If we want to warn that not all overloads are overriden we can have an additional warning like -Wpartial-override. -Woverloaded-virtual, unlike gcc, is added to -Wmost. Addresses rdar://8757630. llvm-svn: 124805
* Teach SourceManager::getLocation() how to cope with a source fileDouglas Gregor2011-02-031-18/+84
| | | | | | | | | | | | | | | | whose inode has changed since the file was first created and that is being seen through a different path name (e.g., due to symlinks or relative path elements), such that its FileEntry pointer doesn't match a known FileEntry pointer. Since this requires a system call (to stat()), we only perform this deeper checking if we can't find the file by comparing FileEntry pointers. Also, add a micro-optimization where we don't bother to compute line numbers when given the location (1, 1). This improves the efficiency of clang_getLocationForOffset(). llvm-svn: 124800
* Capture a few implicit references to 'self'.John McCall2011-02-031-3/+37
| | | | llvm-svn: 124786
* More capturing of 'this': implicit member expressions. Getting thatJohn McCall2011-02-0310-195/+211
| | | | | | | | | | | right for anonymous struct/union members led to me discovering some seemingly broken code in that area of Sema, which I fixed, partly by changing the representation of member pointer constants so that IndirectFieldDecls aren't expanded. This led to assorted cleanups with member pointers in CodeGen, and while I was doing that I saw some random other things to clean up. llvm-svn: 124785
* Revert 124768.Rafael Espindola2011-02-035-25/+21
| | | | | | | This reopens PR99114, but that one at least can be avoided with an #include. PR9130 cannot. llvm-svn: 124780
* Revert 124754 and 124760 as they made clang unusable in the presence of symbolicRafael Espindola2011-02-031-84/+0
| | | | | | links. llvm-svn: 124776
* Frontend: Switch -header-include-file output to use unbuffered raw_ostreams withDaniel Dunbar2011-02-031-14/+22
| | | | | | | | the atomic writes option, since the intent is that this option be set for an entire build, which may have any number of compiler instances writing to the same output file. llvm-svn: 124772
* Don't try to mark virtual members referenced for classes where the key functionAnders Carlsson2011-02-035-21/+25
| | | | | | | | | | | is not defined in the current translation unit. Doing so lead to compile errors such as PR9114. Instead, when CodeGen is building the vtable, don't try to emit a definition for functions that aren't marked used in the current translation unit. Fixes PR9114. llvm-svn: 124768
* Improve the performance of filename canonicalization by avoidingDouglas Gregor2011-02-031-1/+8
| | | | | | redundant searches in the string. No functionality change. llvm-svn: 124760
* Based on user feedback, swap -Wuninitialized diagnostics to have the warning ↵Ted Kremenek2011-02-021-32/+37
| | | | | | refer to the bad use, and the note to the variable declaration. llvm-svn: 124758
* -fapple-kext, elimination of all direct calls to virtual dtors.Fariborz Jahanian2011-02-021-0/+4
| | | | llvm-svn: 124757
* Emit debug info for template value parameters.Devang Patel2011-02-021-0/+7
| | | | llvm-svn: 124756
* Canonicalize path names in the file manager before performing a lookupDouglas Gregor2011-02-021-0/+77
| | | | | | | | | | | | | | | on that name. Canonicalization eliminates silliness such as "." and "foo/.." that breaks the uniquing of files in the presence of virtual files or files whose inode numbers have changed during parsing/re-parsing. c-index-test isn't able to create this crazy situation, so I've resorted to testing outside of the Clang tree. Fixes <rdar://problem/8928220>. Note that this hackery will go away once we have a real virtual file system on which we can layer FileManager; the virtual-files hack is showing cracks. llvm-svn: 124754
* Emit debug info for template type parameters.Devang Patel2011-02-021-1/+18
| | | | llvm-svn: 124753
* clang: Add support for a CC_PRINT_HEADERS environment variable, which mirrorsDaniel Dunbar2011-02-022-2/+8
| | | | | | | CC_PRINT_OPTIONS and can be used to get some out-of-band information on header usage from a build. llvm-svn: 124751
* Frontend: Add -header-include-file option, for allowing saving header includeDaniel Dunbar2011-02-023-7/+41
| | | | | | information to a file. llvm-svn: 124750
* Frontend: Add support (unused) for showing all "interesting" headers, not justDaniel Dunbar2011-02-021-21/+16
| | | | | | ones outside the predefines buffer (which is what -H does). llvm-svn: 124749
* For gcc compatibility, size of a class which is zeroFariborz Jahanian2011-02-021-2/+11
| | | | | | | | but has non-empty data fields, such as array of zero length, remains zero. // rdar://8945175 llvm-svn: 124741
* Revert r124704, which uniqued code-completion strings. The spaceDouglas Gregor2011-02-021-31/+0
| | | | | | | | | savings of 25% sounds impressive, except that this amounted to only about 360k in our standard "large" completion result set (40,000 results). Since code completion is performance-sensitive, the 4% slowdown due to uniquing outweighs the 360k benefit. llvm-svn: 124737
* Add NetBSD target support. Patch by Joerg Sonnenberger.Benjamin Kramer2011-02-028-3/+318
| | | | llvm-svn: 124736
* Don't warn for -Wnon-virtual-dtor for dependent classes.Argyrios Kyrtzidis2011-02-021-1/+1
| | | | llvm-svn: 124735
* Frontend: Factor out header include dumping (-H) into its own preprocessorDaniel Dunbar2011-02-025-39/+99
| | | | | | | | callbacks class. - Aside from being generally cleaner, this also allows -H to work correctly in modes other than standard preprocessing (e.g., -c, -MM, etc.) llvm-svn: 124723
* An insomniac stab at making block declarations list the variables they closeJohn McCall2011-02-0211-117/+203
| | | | | | | on, as well as more reliably limiting invalid references to locals from nested scopes. llvm-svn: 124721
OpenPOWER on IntegriCloud