| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 123790
|
| |
|
|
| |
llvm-svn: 123773
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example:
class A{
public:
A& operator=(const A& that) {
if (this != &that) {
this->A::~A();
this->A::A(that); // <=== explicit constructor call.
}
return *this;
}
};
More work will be needed to support an explicit call to a template constructor.
llvm-svn: 123735
|
| |
|
|
|
|
| |
ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units.
llvm-svn: 123720
|
| |
|
|
|
|
| |
-Wint-to-pointer-cast.
llvm-svn: 123719
|
| |
|
|
|
|
|
| |
FIXME: It would be incompatible to Microsoft's in one point.
On mingw64-gcc, {i128} is expanded for args and returned as {rax, rdx}.
llvm-svn: 123692
|
| |
|
|
| |
llvm-svn: 123682
|
| |
|
|
| |
llvm-svn: 123681
|
| |
|
|
|
|
| |
const NSConstantString *appKey = @"MyApp";
llvm-svn: 123680
|
| |
|
|
|
|
|
| |
__builtin___CFStringMakeConstantString
This fixes PR8993. A darwin expert might want to check that this is safe.
llvm-svn: 123658
|
| |
|
|
| |
llvm-svn: 123531
|
| |
|
|
|
|
|
| |
bit-pattern. Continue punting on zero-initializing VLAs with a nonzero
pattern.
llvm-svn: 123439
|
| |
|
|
|
|
|
|
| |
replace all uses of the entry with the predecessor. There are no cleanups
relying on this right now, but if we ever want a cleanup with a phi inside
it, this will be important.
llvm-svn: 123438
|
| |
|
|
|
|
|
| |
for efficiancy (still part of //rdar://8761767).
Per John's comment.
llvm-svn: 123401
|
| |
|
|
|
|
| |
assigns. // rdar://8761767
llvm-svn: 123391
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
process, perform a number of refactorings:
- Move MiscNameMangler member functions to MangleContext
- Remove GlobalDecl dependency from MangleContext
- Make MangleContext abstract and move Itanium/Microsoft functionality
to their own classes/files
- Implement ASTContext::createMangleContext and have CodeGen use it
No (intended) functionality change.
llvm-svn: 123386
|
| |
|
|
| |
llvm-svn: 123379
|
| |
|
|
| |
llvm-svn: 123378
|
| |
|
|
|
|
| |
Fixes PR8967.
llvm-svn: 123360
|
| |
|
|
| |
llvm-svn: 123354
|
| |
|
|
| |
llvm-svn: 123332
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
delete the block we began emitting into if it had no predecessors. We never
want to do this, because there are several valid cases during statement
emission where an existing block has no known predecessors but will acquire
some later. The case in my test case doesn't inherently fall into this
category, because we could safely emit the case-range code before the statement
body, but there are examples with labels that can't be fallen into
that would also demonstrate this bug.
rdar://problem/8837067
llvm-svn: 123303
|
| |
|
|
| |
llvm-svn: 123293
|
| |
|
|
| |
llvm-svn: 123280
|
| |
|
|
|
|
| |
think it is safe to mark all type infos with unnamed_addr, but I am not sure.
llvm-svn: 123275
|
| |
|
|
| |
llvm-svn: 123272
|
| |
|
|
|
|
| |
Clang does not wrap the vectors in structs anymore so this isn't needed.
llvm-svn: 123241
|
| |
|
|
| |
llvm-svn: 123199
|
| |
|
|
| |
llvm-svn: 123197
|
| |
|
|
| |
llvm-svn: 123195
|
| |
|
|
|
|
|
|
|
| |
static const char foo[] = "foo";
static const char *bar = "bar";
the global created to hold "bar" will have it, but foo will not.
llvm-svn: 123192
|
| |
|
|
| |
llvm-svn: 123118
|
| |
|
|
|
|
|
| |
more accurate, and makes it make sense for it to hold a delegating constructor
call.
llvm-svn: 123084
|
| |
|
|
|
|
|
|
|
|
| |
In particular, the iteration variable (if present) should be created and
destroyed in a narrow span around the loop body, and the body should
be emitted in a cleanup scope in case it's not a compound statement.
Otherwise, rename a few variables and use phis instead of temporary
variables for the index and buffer count.
llvm-svn: 122988
|
| |
|
|
|
|
|
|
|
|
| |
The initial TreeTransform is a cop-out, but it's more-or-less equivalent
to what we were doing before, or rather what we're doing now and might
eventually stop doing in favor of using this type.
I am simultaneously intrigued by the possibilities of rebuilding a
dependent Attri
llvm-svn: 122942
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
expansions with something that is easier to use correctly: a new
template argment kind, rather than a bit on an existing kind. Update
all of the switch statements that deal with template arguments, fixing
a few latent bugs in the process. I"m happy with this representation,
now.
And, oh look! Template instantiation and deduction work for template
template argument pack expansions.
llvm-svn: 122896
|
| |
|
|
| |
llvm-svn: 122894
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the declaration-specifiers and on the declarator itself are moved
to the appropriate declarator chunk. This permits a greatly
simplified model for how to apply these attributes, as well as
allowing a much more efficient query for the GC attribute.
Now all qualifier queries follow the same basic strategy of
"local qualifiers, local qualifiers on the canonical type,
then look through arrays". This can be easily optimized by
changing the canonical qualified-array-type representation.
Do not process type attributes as decl attributes on declarations
with declarators.
When computing the type of a block, synthesize a prototype
function declarator chunk if the decl-spec type was not a
function. This simplifies the logic for building block signatures.
Change the logic which inserts an objc_read_weak on a block
literal to only fire if the block has a __weak __block variable,
rather than if the return type of the block is __weak qualified,
which is not actually a sensible thing to ask.
llvm-svn: 122871
|
| |
|
|
|
|
|
| |
the switch-enum warnings. Test is forthcoming, once I've dealt with
some template argument deduction issues.
llvm-svn: 122820
|
| |
|
|
| |
llvm-svn: 122782
|
| |
|
|
|
|
|
| |
computing ivar layouts for objc-gc.
Fixes // rdar://8800513
llvm-svn: 122762
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
template argument (described by an expression, of course). For
example:
template<int...> struct int_tuple { };
template<int ...Values>
struct square {
typedef int_tuple<(Values*Values)...> type;
};
It also lays the foundation for pack expansions in an initializer-list.
llvm-svn: 122751
|
| |
|
|
|
|
| |
statements using the "x" constraint.
llvm-svn: 122679
|
| |
|
|
| |
llvm-svn: 122670
|
| |
|
|
| |
llvm-svn: 122669
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
in asm statements:
register int foo asm("rdi");
asm("..." : ... "r" (foo) ...
We also only accept these variables if the constraint in the asm statement is "r".
This fixes most of PR3933.
llvm-svn: 122643
|
| |
|
|
| |
llvm-svn: 122640
|
| |
|
|
| |
llvm-svn: 122634
|
| |
|
|
|
|
| |
refactoring of Mac runtime (returns the same function for both, as the Mac runtimes currently only provide a single entry point for setting and getting struct properties, although this will presumably be fixed at some point).
llvm-svn: 122569
|
| |
|
|
|
|
|
| |
16-bits in size. Implement this by splitting WChar into two enums, like we have
for char. This fixes a miscompmilation of XULRunner, PR8856.
llvm-svn: 122558
|