GCC workaround: use explicit qualification to avoid injected class name.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52625

llvm-svn: 296980
This commit is contained in:
John McCall 2017-03-04 21:46:14 +00:00
parent 32e0d18605
commit 66bd85a96a
1 changed files with 6 additions and 2 deletions

View File

@ -485,8 +485,10 @@ class ConstantArrayBuilder
: public ConstantArrayBuilderTemplateBase<ConstantInitBuilderTraits> { : public ConstantArrayBuilderTemplateBase<ConstantInitBuilderTraits> {
template <class Traits> template <class Traits>
friend class ConstantInitBuilderTemplateBase; friend class ConstantInitBuilderTemplateBase;
// The use of explicit qualification is a GCC workaround.
template <class Impl, class Traits> template <class Impl, class Traits>
friend class ConstantAggregateBuilderTemplateBase; friend class CodeGen::ConstantAggregateBuilderTemplateBase;
ConstantArrayBuilder(ConstantInitBuilder &builder, ConstantArrayBuilder(ConstantInitBuilder &builder,
ConstantAggregateBuilderBase *parent, ConstantAggregateBuilderBase *parent,
@ -500,8 +502,10 @@ class ConstantStructBuilder
: public ConstantStructBuilderTemplateBase<ConstantInitBuilderTraits> { : public ConstantStructBuilderTemplateBase<ConstantInitBuilderTraits> {
template <class Traits> template <class Traits>
friend class ConstantInitBuilderTemplateBase; friend class ConstantInitBuilderTemplateBase;
// The use of explicit qualification is a GCC workaround.
template <class Impl, class Traits> template <class Impl, class Traits>
friend class ConstantAggregateBuilderTemplateBase; friend class CodeGen::ConstantAggregateBuilderTemplateBase;
ConstantStructBuilder(ConstantInitBuilder &builder, ConstantStructBuilder(ConstantInitBuilder &builder,
ConstantAggregateBuilderBase *parent, ConstantAggregateBuilderBase *parent,