[llvm-commits] [llvm] r170031 - /llvm/trunk/include/llvm/Support/YAMLTraits.h

Nick Kledzik kledzik at apple.com
Wed Dec 12 14:27:51 PST 2012


On Dec 12, 2012, at 2:14 PM, Benjamin Kramer wrote:

> 
> On 12.12.2012, at 23:03, Nick Kledzik <kledzik at apple.com> wrote:
> 
>> Author: kledzik
>> Date: Wed Dec 12 16:03:57 2012
>> New Revision: 170031
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=170031&view=rev
>> Log:
>> AlignedCharArrayUnion is erroring with non-clang compilers
>> 
>> Modified:
>>   llvm/trunk/include/llvm/Support/YAMLTraits.h
>> 
>> Modified: llvm/trunk/include/llvm/Support/YAMLTraits.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/YAMLTraits.h?rev=170031&r1=170030&r2=170031&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm/Support/YAMLTraits.h (original)
>> +++ llvm/trunk/include/llvm/Support/YAMLTraits.h Wed Dec 12 16:03:57 2012
>> @@ -630,9 +630,9 @@
>>  TNorm* operator->() { return BufPtr; }
>> 
>> private:
>> -  typedef typename llvm::AlignedCharArrayUnion<TNorm> Storage;
>> -
>> -  Storage       Buffer;
>> +  //typedef typename llvm::AlignedCharArrayUnion<TNorm> Storage;
>> +  //Storage       Buffer;
>> +  char          Buffer[sizeof(TNorm)];
> 
> How about just removing the "typename" specifier? I don't think it's necessary here. GCC eats that.

Well, the error message is below, and given this is template expansion, I'm not sure what 'class' tag it is complaining about.

-Nick

In file included from YAMLTraits.cpp:11:0:
/home/llvmbuild/llvm-ppc64/llvm/include/llvm/Support/YAMLTraits.h:633:26: error: ‘class’ tag used in naming ‘union llvm::AlignedCharArrayUnion<T>’ [-fpermissive]
In file included from /home/llvmbuild/llvm-ppc64/llvm/include/llvm/ADT/DenseMap.h:18:0,
                 from /home/llvmbuild/llvm-ppc64/llvm/include/llvm/Support/YAMLTraits.h:14,
                 from YAMLTraits.cpp:11:
/home/llvmbuild/llvm-ppc64/llvm/include/llvm/Support/AlignOf.h:144:7: note: ‘union llvm::AlignedCharArrayUnion<T>’ was previously declared here
In file included from YAMLTraits.cpp:11:0:


> 
>>  IO           &io;
>>  TNorm        *BufPtr;
>>  TFinal       &Result;
>> @@ -666,9 +666,9 @@
>>  TNorm* operator->() { return BufPtr; }
>> 
>> private:
>> -  typedef typename llvm::AlignedCharArrayUnion<TNorm> Storage;
>> -
>> -  Storage       Buffer;
>> +  //typedef typename llvm::AlignedCharArrayUnion<TNorm> Storage;
>> +  //Storage       Buffer;
>> +  char          Buffer[sizeof(TNorm)];
>>  IO           &io;
>>  TNorm        *BufPtr;
>>  TFinal       &Result;
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 





More information about the llvm-commits mailing list