| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
BinaryTypeTraitExpr.
llvm-svn: 121298
|
|
|
|
|
|
| |
New AST node introduced: BinaryTypeTraitExpr; to be reused for more intrinsics.
llvm-svn: 121074
|
|
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|
|
|
|
|
|
|
|
| |
ObjCPropertyRefExpr
into the latter.
llvm-svn: 120643
|
|
|
|
| |
llvm-svn: 120153
|
|
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
|
| |
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: 118899
|
|
|
|
|
|
| |
Add support for mangling those types according to ARM's ABI.
llvm-svn: 118898
|
|
|
|
| |
llvm-svn: 118897
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 118236
|
|
|
|
|
|
| |
// rdar: //8620510 and PR7666
llvm-svn: 118019
|
|
|
|
|
|
| |
Patch by Richard Smith!
llvm-svn: 116752
|
|
|
|
|
|
|
| |
'super' as receiver of property or a setter/getter
methods. //rdar: //8525788
llvm-svn: 116483
|
|
|
|
| |
llvm-svn: 113623
|
|
|
|
| |
llvm-svn: 113444
|
|
|
|
|
|
| |
Itanium guards and use a slightly different compiled-in API.
llvm-svn: 113330
|
|
|
|
|
|
| |
David Vandevoorde's name correctly.
llvm-svn: 113103
|
|
|
|
|
|
| |
well-intentioned but completely unused code.
llvm-svn: 112868
|
|
|
|
|
|
| |
some issues being sorted out.
llvm-svn: 112493
|
|
|
|
|
|
|
|
|
|
| |
The extra data stored on user-defined literal Tokens is stored in extra
allocated memory, which is managed by the PreprocessorLexer because there isn't
a better place to put it that makes sure it gets deallocated, but only after
it's used up. My testing has shown no significant slowdown as a result, but
independent testing would be appreciated.
llvm-svn: 112458
|
|
|
|
| |
llvm-svn: 111768
|
|
|
|
| |
llvm-svn: 111591
|
|
|
|
|
|
|
|
| |
mangleCallExpression. Also, operator names with unknown arity should
be mangled as binary operators; this is actually covered by an oddly-
positioned sentence in the ABI document. Fixes PR7891.
llvm-svn: 111395
|
|
|
|
|
|
| |
dependent call expression.
llvm-svn: 111300
|
|
|
|
|
|
|
| |
these, but it's convenient to mangle them when deferring them (in the 99.99%
case where it's not an anonymous union, of course).
llvm-svn: 110381
|
|
|
|
| |
llvm-svn: 109315
|
|
|
|
|
|
|
| |
linkage specification. Not sure if this is the ideal fix, but I'm reasonably
sure it's correct vs. gcc.
llvm-svn: 108656
|
|
|
|
|
|
| |
for string literals.
llvm-svn: 108464
|
|
|
|
|
|
|
|
| |
follow <name>; instead they follow <type>, which has <name> as a subset.
Fixes PR7446.
llvm-svn: 108326
|
|
|
|
|
|
|
|
| |
- TSTs whose template is a template template parameter already work
- we don't provide an imaginary type, so we can't mangle one
- we don't need a generic FIXME for vendor type qualifiers
llvm-svn: 108317
|
|
|
|
|
|
|
| |
the current proposals from David Vandervoorde for new, delete, throw, typeid,
imaginary literals, string literals, and null literals.
llvm-svn: 108315
|
|
|
|
|
|
| |
in method/blocks to decide not to mangle them.
llvm-svn: 107309
|
|
|
|
|
|
| |
should not be mangled either. Fixes radar 8016412.
llvm-svn: 107303
|
|
|
|
| |
llvm-svn: 106948
|
|
|
|
|
|
|
| |
when block literal is declared inside a ctor/dtor.
Fixes radr 8096995.
llvm-svn: 106700
|
|
|
|
|
|
| |
with several tweaks by me.
llvm-svn: 106619
|
|
|
|
|
|
|
| |
mangling for types, where the <source-name> is ASxxx (xxx is the
address-space number).
llvm-svn: 105975
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
case of an elaborated-type-specifier like 'typename A<T>::foo', and
DependentTemplateSpecializationType represents the case of an
elaborated-type-specifier like 'typename A<T>::template B<T>'. The TypeLoc
representation of a DependentTST conveniently exactly matches that of an
ElaboratedType wrapping a TST.
Kill off the explicit rebuild methods for RebuildInCurrentInstantiation;
the standard implementations work fine because the nested name specifier
is computable in the newly-entered context.
llvm-svn: 105801
|
|
|
|
|
|
|
| |
a spurious substitution for an unscoped dependent template-id after introducing
a substitution for the scoped template-id.
llvm-svn: 105699
|
|
|
|
| |
llvm-svn: 105606
|
|
|
|
|
|
| |
namespace.
llvm-svn: 105330
|
|
|
|
| |
llvm-svn: 105312
|
|
|
|
| |
llvm-svn: 105311
|