summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Reformatted doc comments so that they are now difficult to edit in any ↵David Chisnall2011-03-261-339/+186
| | | | | | editor that doesn't have explicit doxygen support, as per LLVM style guidelines. llvm-svn: 128335
* Extend the new 'availability' attribute with support for anDouglas Gregor2011-03-264-3/+54
| | | | | | | 'unavailable' argument, which specifies that the declaration to which the attribute appertains is unavailable on that platform. llvm-svn: 128329
* Allow GC qualifiers to be added/removed by conversions from/to void*John McCall2011-03-261-0/+6
| | | | | | without a warning. llvm-svn: 128328
* Don't warn about the 'extern' in 'extern "C"' on a tag decl. This isJohn McCall2011-03-261-2/+7
| | | | | | usually useless, but not always. llvm-svn: 128326
* Fix the recovery from missing semis on @property declarations to not consumeJohn McCall2011-03-261-2/+1
| | | | | | | | the following '@'. Conceivably, we could skip tokens until something that can validly start an @interface declaration here, but it's not clear that it matters. llvm-svn: 128325
* Properly move attributes to the decl spec when applying them there.John McCall2011-03-261-4/+21
| | | | llvm-svn: 128324
* Convert the OffsetInLayoutClass parameter ofKen Dyck2011-03-261-8/+8
| | | | | | | FinalOverriders::ComputeBaseOffsets() to CharUnits. No change in functionality intended. llvm-svn: 128323
* Convert FinalOverriders::Offset to CharUnits. No change in functionalityKen Dyck2011-03-261-8/+8
| | | | | | intended. llvm-svn: 128321
* Convert offset in MethodBaseOffsetPairTy to CharUnits. No change inKen Dyck2011-03-261-9/+8
| | | | | | functionality intended. llvm-svn: 128318
* Convert the offsets in SubobjectOffsetMapTy to CharUnits. No change inKen Dyck2011-03-261-8/+8
| | | | | | functionality intended. llvm-svn: 128317
* Convert several local variables to CharUnits. No change in functionalityKen Dyck2011-03-261-45/+39
| | | | | | intended. llvm-svn: 128315
* Tweak grammar in checker description.Ted Kremenek2011-03-261-1/+1
| | | | llvm-svn: 128310
* Provide blockDecl's startLoc to startFunction. This fixes hidden bug exposed ↵Devang Patel2011-03-251-1/+1
| | | | | | by recent code gen changes. This is tested by global-blocks-lines.exp in gdb testsuite. llvm-svn: 128303
* Obj-C/NeXT: Update and reapply 108847, now that changes are more baked.Daniel Dunbar2011-03-251-5/+15
| | | | llvm-svn: 128300
* Silly mistake in integer constant folding cleanup.Eli Friedman2011-03-251-1/+1
| | | | llvm-svn: 128297
* Driver/Darwin: Dsymutil actions should put the dSYM adjacent to the output file.Daniel Dunbar2011-03-251-1/+7
| | | | llvm-svn: 128292
* Refactor CGObjCMac to use the shared code for EH stuff.David Chisnall2011-03-251-154/+7
| | | | | | Sanity checked by John McCall. llvm-svn: 128287
* we can now claim to fully support the override control feature in C++0x.Anders Carlsson2011-03-251-0/+1
| | | | llvm-svn: 128281
* Fixup comments.Anders Carlsson2011-03-252-5/+4
| | | | llvm-svn: 128280
* Remove the last of ClassVirtSpecifiers.Anders Carlsson2011-03-252-80/+14
| | | | llvm-svn: 128279
* Replace the call to ParseOptionalCXX0XClassVirtSpecifierSeq with code to ↵Anders Carlsson2011-03-251-5/+18
| | | | | | only parse an optional 'final' keyword. llvm-svn: 128278
* Get rid of handling of the 'explicit' keyword from class-head. We still ↵Anders Carlsson2011-03-253-26/+7
| | | | | | parse it though, although that will change shortly. llvm-svn: 128277
* Unbreak CMake build.Anders Carlsson2011-03-251-0/+1
| | | | llvm-svn: 128276
* Added some doc comments.David Chisnall2011-03-251-14/+263
| | | | llvm-svn: 128275
* Continuing work on ObjC tidyup:David Chisnall2011-03-254-449/+427
| | | | | | | | | | | | | | | | - Moved the CGObjCRuntime functions out of CGObjCMac.cpp into CGObjCRuntime.cpp - Added generic functions in CGObjCRuntime for emitting @try and @synchronize blocks, usable by any runtime that uses DWARF exceptions. - Made the GNU runtimes use these functions. It should now be possible to replace the equivalent functions in CGObjCNonFragileABIMac with simple calls to these two functions, providing the runtime functions as arguments. I'll post a diff to the list for review before making any changes to the Mac runtime stuff. llvm-svn: 128274
* Remove warnings about using override control keywords in inline function ↵Anders Carlsson2011-03-251-5/+0
| | | | | | definitions; they will be allowed in the next C++0x draft. llvm-svn: 128273
* Fix some clang warnings.Anders Carlsson2011-03-251-3/+3
| | | | llvm-svn: 128272
* Remove 'new' from virt-specifier since it's going to be removed in the next ↵Anders Carlsson2011-03-253-8/+0
| | | | | | C++0x draft llvm-svn: 128271
* Apply the nonnull attribute to constructor expressions too.Nick Lewycky2011-03-252-5/+13
| | | | llvm-svn: 128253
* Switch constant evaluation of float casts over to cast kinds.Eli Friedman2011-03-251-3/+13
| | | | llvm-svn: 128251
* Cleanup integral and vector constant evaluation of casts to use cast kinds.Eli Friedman2011-03-251-87/+105
| | | | llvm-svn: 128250
* Minor fix in the injection of labels, since we want to look at the ↵Douglas Gregor2011-03-241-1/+1
| | | | | | redeclaration context of each declaration in the identifier chain. Should fix Linux self-host llvm-svn: 128210
* Insomniac refactoring: change how the parser allocates attributes so thatJohn McCall2011-03-2413-196/+241
| | | | | | | | | AttributeLists do not accumulate over the lifetime of parsing, but are instead reused. Also make the arguments array not require a separate allocation, and make availability attributes store their stuff in augmented memory, too. llvm-svn: 128209
* Fix the insertion of label declarations into the identifier chain inDouglas Gregor2011-03-241-3/+18
| | | | | | | the case where we only have a single identifier with that name in the chain. Fixes PR9463 for real this time. llvm-svn: 128208
* Make sure we aggressively attach nounwind (etc.) to calls to libraryEli Friedman2011-03-241-2/+1
| | | | | | functions of the form __builtin_XXX. llvm-svn: 128198
* Convert the BaseOffset member of BaseSubobject to CharUnits from bits. NoKen Dyck2011-03-245-82/+104
| | | | | | change in functionality intended. llvm-svn: 128190
* Add a new warning for exit-time destructors.Anders Carlsson2011-03-241-3/+7
| | | | llvm-svn: 128188
* Rework checker "packages" and groups to be more hierarchical.Ted Kremenek2011-03-242-207/+270
| | | | llvm-svn: 128187
* Call out ObjC parameter types as a different kind of declarator contextJohn McCall2011-03-232-3/+4
| | | | | | from a normal type-spec, just for completeness. llvm-svn: 128185
* Fixed type error in last commit (forgot that now that selectors are notDavid Chisnall2011-03-231-147/+199
| | | | | | | | | | | | | accessed via the indirect pointer, they don't need to be pointers to pointers). Finished moving the message lookup code into separate subclasses for each runtime. Also performed a few smallish related tidies. We're now bitcasting the result of the message lookup functions, rather than casting the lookup functions themselves, so the messages.m test needed updating to reflect this. llvm-svn: 128180
* Fix CFG-construction bug when run from ↵Ted Kremenek2011-03-231-9/+23
| | | | | | | | AnalysisBasedWarnings::IssueWarnings() where block-level expressions that need to be recorded in the Stmt*->CFGBlock* map were not always done so. Fixes <rdar://problem/9171946>. llvm-svn: 128170
* Support for Transparent unions used as overloadableFariborz Jahanian2011-03-232-2/+50
| | | | | | | function parameter. // rdar:// 9129552 and PR9406. llvm-svn: 128159
* Revert r128156 because of CodeGenObjC/messages.m and Coverage/codegen-gnu.m.Andrew Trick2011-03-231-9/+10
| | | | llvm-svn: 128157
* Remove the redundant loads / stores to globals that we were generating for ↵David Chisnall2011-03-231-10/+9
| | | | | | selectors (GNU runtimes). llvm-svn: 128156
* Initial work on refactoring GNU runtime code (long overdue - it's quite obviousDavid Chisnall2011-03-231-298/+349
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that I hadn't used C++ for several years before writing most of this code). Still lots more to do. This set of changes includes: - Remove the distinction between typed and untyped selectors. More accurately reflect what the runtime does, by using typed selectors everywhere, with an empty type field if the types are unknown. Now we just store a small list of types for each selector (in theory, this should always be exactly one, but this constraint was not enforced back in 1986 when it should have been). - Add some consistency to how runtime functions are created. These are all generated via the LazyRuntimeFunction class (which might be useful outside CGObjCGNU - feel free to move it into a header if it is). This function stores the types of a function, looks it up the first time it's used, and caches the result. This means that we're now not wasting time constructing the llvm::FunctionType every time some of the functions are looked up, but also not inserting references to runtime functions into the module if they're not actually used. - Started separating out the fragile and non-fragile ABI behaviours into two subclasses of CGObjCGNU: CGObjCGCC for the legacy GCC runtime ABI and CGObjCGNUstep for the new GNUstep ABI. Not all of the differences in behaviour are factored out yet, but they will be in future commits. - Removed all of the CodeGen:: things: we've been using namespace CodeGen in this file for ages, so having explicit namespace specifiers is just a bit confusing. - Added a few more comments. - Used llvm::StringRef instead of std::string in a few places. - Finally got around to storing the module path in the module structure. The ABI says that the compiler should do this, although it's not used in the runtime or exposed outside the runtime, so it's pretty useless. Still to do: - We currently have two code paths for generating try blocks, one for ObjC and one for ObjC++. Not only are these substantially similar, they are also very similar to the CGObjCMac version. These need factoring out into a single parameterised implementation, either in CGObjCRuntime or CodeGenFunction. The EmitObjCXXTryStmt() function was added so that the changes to fix a bug in time for the 2.9 release would be self-contained and reduce the chances of breaking anything else, but these should be done properly as soon as possible. - Split up some large functions (e.g. GenerateClass()) into smaller functions for generating the various data structures. - The method lookup code into the two subclasses, removing the conditionals in the message send functions. - Add doxygen comments on the remaining undocumented functions. - We seem to be generating global pointer variables for selectors, then storing a pointer to the selector, then generating a load of this pointer (and then a load of the real selector later) every time a static selector is used. I can only assume I was asleep or drunk when I did this - we should just be referencing the selectors directly in the selector array. llvm-svn: 128152
* Update type cache when a type is completed.Devang Patel2011-03-234-5/+28
| | | | | | Radar 9168773 llvm-svn: 128150
* Teach DelayedDiagnostic to copy its string, rather than hope that theDouglas Gregor2011-03-233-1/+53
| | | | | | | string itself lives longer than the DelayedDiagnostic. Fixes a recent use-after-free regression due to my availability attribute work. llvm-svn: 128148
* Ignore weak_import on Objective-C property and method declarations onDouglas Gregor2011-03-231-4/+5
| | | | | | all platforms, not just darwin. Fixes the regression in this test case. llvm-svn: 128147
* switch a few Driver APIs to use llvm::ArrayRef, cleaning up code.Chris Lattner2011-03-232-11/+7
| | | | llvm-svn: 128142
* remove a dead variable.Chris Lattner2011-03-231-1/+0
| | | | llvm-svn: 128141
OpenPOWER on IntegriCloud