| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pack expansions, e.g. given
template<typename... Types> struct tuple;
template<typename... Types>
struct tuple_of_refs {
typedef tuple<Types&...> types;
};
the type of the "types" typedef is a PackExpansionType whose pattern
is Types&.
This commit introduces support for creating pack expansions for
template type arguments, as above, but not for any other kind of pack
expansion, nor for any form of instantiation.
llvm-svn: 122223
|
| |
|
|
|
|
| |
2. Add attibutes "interrupt_handler" and "save_volatiles" for the Microblaze target.
llvm-svn: 122184
|
| |
|
|
|
|
| |
way to do this, but it fixes rdar://problem/8778973
llvm-svn: 122033
|
| |
|
|
|
|
|
| |
Also tweak the VCVT_F32_F16 entry in arm_neon.td to be more consistent with
the other floating-point conversion builtins. Radar 8068427.
llvm-svn: 121916
|
| |
|
|
|
|
|
|
| |
within the class. Teach IR gen to look for function definitions in record
lexical contexts when deciding whether to emit a function whose address
was taken. Fixes PR8789.
llvm-svn: 121833
|
| |
|
|
| |
llvm-svn: 121763
|
| |
|
|
| |
llvm-svn: 121759
|
| |
|
|
|
|
|
| |
class to be passed around. The line between argument and return types and
everything else is kindof vague, but I think it's justifiable.
llvm-svn: 121752
|
| |
|
|
| |
llvm-svn: 121734
|
| |
|
|
| |
llvm-svn: 121595
|
| |
|
|
|
|
| |
The 64-bit element vectors need to be handled as a special case.
llvm-svn: 121592
|
| |
|
|
| |
llvm-svn: 121488
|
| |
|
|
|
|
|
|
|
|
| |
space better. Remove this reference. To make that work, change some APIs
(most importantly, getDesugaredType()) to take an ASTContext& if they
need to return a QualType. Simultaneously, diminish the need to return a
QualType by introducing some useful APIs on SplitQualType, which is
just a std::pair<const Type *, Qualifiers>.
llvm-svn: 121478
|
| |
|
|
| |
llvm-svn: 121468
|
| |
|
|
|
|
| |
Clang was only specifying the overloaded result type. PR8483.
llvm-svn: 121464
|
| |
|
|
| |
llvm-svn: 121447
|
| |
|
|
| |
llvm-svn: 121436
|
| |
|
|
| |
llvm-svn: 121333
|
| |
|
|
| |
llvm-svn: 121326
|