diff options
| author | Bruno Ricci <riccibrun@gmail.com> | 2018-08-15 16:21:17 +0000 |
|---|---|---|
| committer | Bruno Ricci <riccibrun@gmail.com> | 2018-08-15 16:21:17 +0000 |
| commit | 43ccc1c63dcdd1814774de7b8e88ab3583dd420b (patch) | |
| tree | aa750a3a675b55a54e5b32d3caba8725fe36dfe2 /clang/lib | |
| parent | 82812fb986aa217a69f18390207a683049b7748a (diff) | |
| download | bcm5719-llvm-43ccc1c63dcdd1814774de7b8e88ab3583dd420b.tar.gz bcm5719-llvm-43ccc1c63dcdd1814774de7b8e88ab3583dd420b.zip | |
[AST] Pack the bits of TemplateSpecializationType into Type
Type has enough space for two members of
TemplateSpecializationType. Mechanical patch.
Reviewed By: erichkeane
Differential Revision: https://reviews.llvm.org/D50643
llvm-svn: 339787
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/Type.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/AST/Type.cpp b/clang/lib/AST/Type.cpp index 315844fa424..1dba3e3e4c7 100644 --- a/clang/lib/AST/Type.cpp +++ b/clang/lib/AST/Type.cpp @@ -3335,8 +3335,10 @@ TemplateSpecializationType(TemplateName T, Canon.isNull()? true : Canon->isDependentType(), Canon.isNull()? true : Canon->isInstantiationDependentType(), false, - T.containsUnexpandedParameterPack()), - Template(T), NumArgs(Args.size()), TypeAlias(!AliasedType.isNull()) { + T.containsUnexpandedParameterPack()), Template(T) { + TemplateSpecializationTypeBits.NumArgs = Args.size(); + TemplateSpecializationTypeBits.TypeAlias = !AliasedType.isNull(); + assert(!T.getAsDependentTemplateName() && "Use DependentTemplateSpecializationType for dependent template-name"); assert((T.getKind() == TemplateName::Template || @@ -3365,7 +3367,7 @@ TemplateSpecializationType(TemplateName T, } // Store the aliased type if this is a type alias template specialization. - if (TypeAlias) { + if (isTypeAlias()) { auto *Begin = reinterpret_cast<TemplateArgument *>(this + 1); *reinterpret_cast<QualType*>(Begin + getNumArgs()) = AliasedType; } |

