| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 119814
|
|
|
|
|
|
|
| |
types was not being generated for objc pointers.
// rdar://8681766.
llvm-svn: 119751
|
|
|
|
|
|
|
|
|
|
|
| |
-Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
-DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
-The rest of the state in Diagnostic object is considered related and tied to one translation unit.
-Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
SourceLocation instead of a FullSourceLoc.
-Reflect the changes to various interfaces.
llvm-svn: 119730
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
store it on the expression node. Also store an "object kind",
which distinguishes ordinary "addressed" l-values (like
variable references and pointer dereferences) and bitfield,
@property, and vector-component l-values.
Currently we're not using these for much, but I aim to switch
pretty much everything calculating l-valueness over to them.
For now they shouldn't necessarily be trusted.
llvm-svn: 119685
|
|
|
|
| |
llvm-svn: 119678
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of all the lines of the inline asm. With the refactoring and enhancement
of the backend, we can now reports errors on the correct source line when
an asm contains multiple lines of text. For something like this:
void foo() {
asm("push %rax\n"
".code32\n");
}
we used to get this: (note that the line 4 in t.c isn't helpful)
t.c:4:7: error: warning: ignoring directive for now
asm("push %rax\n"
^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^
now we get:
t.c:5:8: error: warning: ignoring directive for now
".code32\n"
^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^
Note that we're pointing to line 5 properly now. This implements
rdar://7839391 - inline asm errors should point to the right line in the asm
and makes the error message in PR8595 much less confusing.
llvm-svn: 119489
|
|
|
|
| |
llvm-svn: 119487
|
|
|
|
| |
llvm-svn: 119464
|
|
|
|
|
|
| |
about a __block cxx object.
llvm-svn: 119411
|
|
|
|
|
|
| |
branches. Fixes PR8623.
llvm-svn: 119408
|
|
|
|
|
|
|
| |
case based on CodeGen/volatile-1.c which tests the current C++
semantics, and note the many, many places we fall short of them.
llvm-svn: 119402
|
|
|
|
|
|
|
| |
issue with runtime which I am discussing it with Blaine.
This is wip (so no test yet).
llvm-svn: 119368
|
|
|
|
|
|
|
|
|
| |
assignment to volatiles in C. This in effect reverts some of mjs's
work in and around r72572. Basically, the C++ standard is quite
clear, except that it lies about volatile behavior approximating
C's, whereas the C standard is almost actively misleading.
llvm-svn: 119344
|
|
|
|
| |
llvm-svn: 119332
|
|
|
|
| |
llvm-svn: 119331
|
|
|
|
|
|
| |
a compound assignment is always already in the computation type.
llvm-svn: 119330
|
|
|
|
|
|
|
| |
one of the special Neon types. We'll check for invalid Neon vectors when
they are created, so there's no point in handling them when mangling.
llvm-svn: 119299
|
|
|
|
| |
llvm-svn: 119297
|
|
|
|
|
|
|
| |
certain internal type-checking procedures as well as for representing
certain implicitly-generated operations. Uses to follow.
llvm-svn: 119289
|
|
|
|
| |
llvm-svn: 119174
|
|
|
|
|
|
| |
expression into the assert.
llvm-svn: 119143
|
|
|
|
| |
llvm-svn: 119138
|
|
|
|
|
|
|
|
| |
Return the result of a complex assignment with the original values,
not by performing a load from the l-value; this is the correct
semantics in C, although not in C++.
llvm-svn: 119037
|
|
|
|
|
|
|
|
|
|
| |
implicit conversions; the last batch was specific to promotions.
I think this is the full set we need. I do think dividing the cast
kinds into floating and integral is probably a good idea.
Annotate a *lot* more C casts with useful cast kinds.
llvm-svn: 119036
|
|
|
|
|
|
|
| |
somehow got several block tests fail with a linux built
compiler.
llvm-svn: 119027
|
|
|
|
| |
llvm-svn: 119014
|
|
|
|
|
|
|
|
| |
copy helper function and dtor of copied cxx objects
in dispose helper functions. __block variables
TBD next.
llvm-svn: 119011
|
|
|
|
|
|
| |
between complex types.
llvm-svn: 118994
|
|
|
|
| |
llvm-svn: 118966
|
|
|
|
| |
llvm-svn: 118915
|
|
|
|
| |
llvm-svn: 118899
|
|
|
|
|
|
| |
Add support for mangling those types according to ARM's ABI.
llvm-svn: 118898
|
|
|
|
| |
llvm-svn: 118897
|
|
|
|
| |
llvm-svn: 118892
|
|
|
|
|
|
|
| |
produce an invalid location even when given a valid location, if the
file system has changed underneath us. Recovery more gracefully.
llvm-svn: 118834
|
|
|
|
|
|
| |
a test change, all for blocks. wip.
llvm-svn: 118745
|
|
|
|
|
|
|
|
|
| |
NEON vector types need to be mangled in a special way to comply with ARM's ABI,
similar to some of the AltiVec-specific vector types. This patch is mostly
just renaming a bunch of "AltiVecSpecific" things, since they will no longer
be specific to AltiVec. Besides that, it just adds the new "NeonVector" enum.
llvm-svn: 118724
|
|
|
|
|
|
|
|
| |
mangler. Now member functions and pointers thereof have their calling
convention mangled as __thiscall if they have the default CC (even though,
they technically still have the __cdecl CC).
llvm-svn: 118598
|
|
|
|
| |
llvm-svn: 118498
|
|
|
|
|
|
| |
Fix linux build.
llvm-svn: 118497
|
|
|
|
|
|
| |
a first step towards fixing PR6995.
llvm-svn: 118491
|
|
|
|
|
|
| |
Fixes rdar://8644873 & http://llvm.org/PR8567.
llvm-svn: 118468
|
|
|
|
|
|
|
|
|
|
|
|
| |
there's no return adjustment from the overridden to the overrider doesn't
mean there isn't a return adjustment from the overrider to the final
overrider. This matters if we're emitting a virtual this-adjustment thunk
because the overrider virtually inherits from the class providing the
nearest overridden method. Do the appropriate return adjustment in this case.
Fixes PR7611.
llvm-svn: 118466
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
abstractions (e.g., TemplateArgumentListBuilder) that were designed to
support variadic templates. Only a few remnants of variadic templates
remain, in the parser (parsing template type parameter packs), AST
(template type parameter pack bits and TemplateArgument::Pack), and
Sema; these are expected to be used in a future implementation of
variadic templates.
But don't get too excited about that happening now.
llvm-svn: 118385
|
|
|
|
| |
llvm-svn: 118366
|
|
|
|
|
|
|
|
|
| |
data members by delaying the emission of the initializer until after
linkage and visibility have been set on the global. Also, don't
emit a guard unless the variable actually ends up with vague linkage,
and don't use thread-safe statics in any case.
llvm-svn: 118336
|
|
|
|
| |
llvm-svn: 118238
|
|
|
|
| |
llvm-svn: 118236
|
|
|
|
| |
llvm-svn: 118172
|
|
|
|
|
|
| |
visibility of their function.
llvm-svn: 118065
|