GCC workaround: use explicit qualification to avoid injected class name.
authorJohn McCall <rjmccall@apple.com>
Sat, 4 Mar 2017 21:46:14 +0000 (21:46 +0000)
committerJohn McCall <rjmccall@apple.com>
Sat, 4 Mar 2017 21:46:14 +0000 (21:46 +0000)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52625

llvm-svn: 296980

clang/include/clang/CodeGen/ConstantInitBuilder.h

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