| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
editor that doesn't have explicit doxygen support, as per LLVM style guidelines.
llvm-svn: 128335
|
|
|
|
|
|
|
| |
'unavailable' argument, which specifies that the declaration to which
the attribute appertains is unavailable on that platform.
llvm-svn: 128329
|
|
|
|
|
|
| |
without a warning.
llvm-svn: 128328
|
|
|
|
|
|
| |
usually useless, but not always.
llvm-svn: 128326
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 128324
|
|
|
|
|
|
|
| |
FinalOverriders::ComputeBaseOffsets() to CharUnits. No change in
functionality intended.
llvm-svn: 128323
|
|
|
|
|
|
| |
intended.
llvm-svn: 128321
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 128318
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 128317
|
|
|
|
|
|
| |
intended.
llvm-svn: 128315
|
|
|
|
| |
llvm-svn: 128310
|
|
|
|
|
|
| |
by recent code gen changes. This is tested by global-blocks-lines.exp in gdb testsuite.
llvm-svn: 128303
|
|
|
|
| |
llvm-svn: 128300
|
|
|
|
| |
llvm-svn: 128297
|
|
|
|
| |
llvm-svn: 128292
|
|
|
|
|
|
| |
Sanity checked by John McCall.
llvm-svn: 128287
|
|
|
|
| |
llvm-svn: 128281
|
|
|
|
| |
llvm-svn: 128280
|
|
|
|
| |
llvm-svn: 128279
|
|
|
|
|
|
| |
only parse an optional 'final' keyword.
llvm-svn: 128278
|
|
|
|
|
|
| |
parse it though, although that will change shortly.
llvm-svn: 128277
|
|
|
|
| |
llvm-svn: 128276
|
|
|
|
| |
llvm-svn: 128275
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
definitions; they will be allowed in the next C++0x draft.
llvm-svn: 128273
|
|
|
|
| |
llvm-svn: 128272
|
|
|
|
|
|
| |
C++0x draft
llvm-svn: 128271
|
|
|
|
| |
llvm-svn: 128253
|
|
|
|
| |
llvm-svn: 128251
|
|
|
|
| |
llvm-svn: 128250
|
|
|
|
|
|
| |
redeclaration context of each declaration in the identifier chain. Should fix Linux self-host
llvm-svn: 128210
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
the case where we only have a single identifier with that name in the
chain. Fixes PR9463 for real this time.
llvm-svn: 128208
|
|
|
|
|
|
| |
functions of the form __builtin_XXX.
llvm-svn: 128198
|
|
|
|
|
|
| |
change in functionality intended.
llvm-svn: 128190
|
|
|
|
| |
llvm-svn: 128188
|
|
|
|
| |
llvm-svn: 128187
|
|
|
|
|
|
| |
from a normal type-spec, just for completeness.
llvm-svn: 128185
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
function parameter. // rdar:// 9129552
and PR9406.
llvm-svn: 128159
|
|
|
|
| |
llvm-svn: 128157
|
|
|
|
|
|
| |
selectors (GNU runtimes).
llvm-svn: 128156
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Radar 9168773
llvm-svn: 128150
|
|
|
|
|
|
|
| |
string itself lives longer than the DelayedDiagnostic. Fixes a recent
use-after-free regression due to my availability attribute work.
llvm-svn: 128148
|
|
|
|
|
|
| |
all platforms, not just darwin. Fixes the regression in this test case.
llvm-svn: 128147
|
|
|
|
| |
llvm-svn: 128142
|
|
|
|
| |
llvm-svn: 128141
|