| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
corresponding to the function type.
llvm-svn: 105310
|
|
|
|
|
|
| |
change.
llvm-svn: 104715
|
|
|
|
|
|
| |
vtables, VTTs, and construction vtables. Fixes PR7201.
llvm-svn: 104675
|
|
|
|
|
|
|
|
|
| |
variables within blocks. We loosely follow GCC's mangling, but since
these are always internal symbols the names don't really matter. I
intend to revisit block mangling later, because GCC's mangling is
rather verbose. <rdar://problem/8015719>.
llvm-svn: 104610
|
|
|
|
| |
llvm-svn: 103875
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ObjCObjectType, which is basically just a pair of
one of {primitive-id, primitive-Class, user-defined @class}
with
a list of protocols.
An ObjCObjectPointerType is therefore just a pointer which always points to
one of these types (possibly sugared). ObjCInterfaceType is now just a kind
of ObjCObjectType which happens to not carry any protocols.
Alter a rather large number of use sites to use ObjCObjectType instead of
ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather
than hashing them in a FoldingSet. Remove some number of methods that are no
longer used, at least after this patch.
By simplifying ObjCObjectPointerType, we are now able to easily remove and apply
pointers to Objective-C types, which is crucial for a certain kind of ObjC++
metaprogramming common in WebKit.
llvm-svn: 103870
|
|
|
|
|
|
|
| |
with no whitespace. This will allow statements to be referred to in
attribute TableGen files.
llvm-svn: 103087
|
|
|
|
|
|
|
| |
whitespace which makes this patch unreadable. Will recommit without the
whitespace.
llvm-svn: 103086
|
|
|
|
| |
llvm-svn: 103072
|
|
|
|
|
|
|
|
| |
T::template apply<U>), handling a few cases where we previously failed
and performing substitutions on such dependent names. Fixes a crash in
Boost.PropertyTree.
llvm-svn: 102490
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of a class template or class template partial specialization. That is to
say, in
template <class T> class A { ... };
or
template <class T> class B<const T*> { ... };
make 'A<T>' and 'B<const T*>' sugar for the corresponding InjectedClassNameType
when written inside the appropriate context. This allows us to track the
current instantiation appropriately even inside AST routines. It also allows
us to compute a DeclContext for a type much more efficiently, at some extra
cost every time we write a template specialization (which can be optimized,
but I've left it simple in this patch).
llvm-svn: 102407
|
|
|
|
| |
llvm-svn: 102168
|
|
|
|
|
|
|
|
|
| |
T::apply <U>::type
Fixes PR6899, although I want to dig a little deeper into the FIXME
for dependent template names that refer to operators.
llvm-svn: 102167
|
|
|
|
|
|
|
| |
It is ok to have c++-ness inside extern "C"
block. Fixes pr6644.
llvm-svn: 101948
|
|
|
|
| |
llvm-svn: 101666
|
|
|
|
|
|
|
|
| |
users of getNameAsString on a stream.
The next step is to print the name directly into the stream, avoiding a temporary std::string copy.
llvm-svn: 101632
|
|
|
|
| |
llvm-svn: 100928
|
|
|
|
|
|
| |
serve as a source of source locations for the can't-yet-mangle diagnostic.
llvm-svn: 100924
|
|
|
|
| |
llvm-svn: 100909
|
|
|
|
|
|
|
| |
mangling an unknown expression kind. Also conveniently tells the user what
kind of expression they should add to the mangler!
llvm-svn: 100907
|
|
|
|
|
|
|
|
| |
just integer-literal expressions with special case implementations in the AST.
Fixes rdar://problem/7825453.
llvm-svn: 100905
|
|
|
|
| |
llvm-svn: 100778
|
|
|
|
|
|
|
| |
this was parsed as a typename-specifier, elaborated-type-specifier
(including the kind), or just a dependent qualified type name.
llvm-svn: 100039
|
|
|
|
|
|
| |
refactoring work in this area.
llvm-svn: 100019
|
|
|
|
| |
llvm-svn: 99869
|
|
|
|
| |
llvm-svn: 99616
|
|
|
|
| |
llvm-svn: 99294
|
|
|
|
|
|
| |
Fixes PR6625.
llvm-svn: 98707
|
|
|
|
| |
llvm-svn: 98436
|
|
|
|
| |
llvm-svn: 98254
|
|
|
|
|
|
|
|
|
| |
doesn't do this on any of the major platforms, and we don't really
support any of the platforms that do (nor will we actually handle
those headers well). Fixes PR6217; see PR6530 for details on what we
would need to do to support these platforms.
llvm-svn: 97899
|