複数の ccrx ver3.xx.00 で確認したのですが、下記ソースコードに対して W0523038 が発生しています。
#include <inttypes.h>
union utf16le_type { uint16_t utf16le; struct utf16byteorder { uint8_t L; uint8_t H; }; utf16byteorder B;};
template<int N>struct string_descriptor_type1 { uint8_t Size; // sizeof uint8_t Type; // 3 utf16le_type Body[N];};
struct string_descriptor_type2 { uint8_t Size; // sizeof uint8_t Type; // 3 utf16le_type Body[8];};
string_descriptor_type1<8> serialnumber1; // Line 17 is herestring_descriptor_type2 serialnumber2;
piyo.cpp(17):W0523038:A struct/union/class has different pack specifications
template で配列サイズを指定すると出るようです。普通の単純配列にすれば出ないので困らないのですがカッコ悪いっス。
生成される機械語のほうも
.SECTION B_2,DATA,ALIGN=200000000 _serialnumber1:00000000(00000012H) .blkw 900000012 _serialnumber2:00000012(00000012H) .blkw 9
となっており、暫定的に期待通りのコードとなっています。
こういうバグレポートはここでよいのかな?