<div>Regarding bug 7032, an error is generated in the following case because of the absence of an array size:</div>
<div> </div>
<div>class test {</div>
<div>int m;</div>
<div>unsigned int mDummy[];</div>
<div>};<br></div>
<div>>clang -cc1 AttributeAligned1.cpp<br>AttributeAligned1.cpp:3:14: error: field has incomplete type 'unsigned int []'<br>unsigned int mDummy[];<br>             ^<br>1 error generated.<br clear="all"></div>
<div>According to the standards C99_n1124 at 6.2.5.p22 and C++_n2723 at 3.9.1.p5 this is a legitimate error.  However, gcc doesn't flag it.  What do we do in this kind of case, regarding maintaining compatibility and facilitating porting?</div>

<div> </div>
<div>The following options come to mind:</div>
<div> </div>
<div>1.  Keep it an error.  It's an easy fix, adding a 0 for length.  (In my case the field is only used for getting an aligned field offset.)</div>
<div>2.  Make it a warning, assume 0-size, and report this assumption and suggest adding an explicit size.</div>
<div>3.  Keep it an error or warning, and have a gcc-compatibility option to eliminate it.</div>
<div>4.  Silently ignore it and assume 0 size like gcc.</div>
<div> </div>
<div>-John</div>
<div><br>-- <br>John Thompson<br><a href="mailto:John.Thompson.JTSoftware@gmail.com">John.Thompson.JTSoftware@gmail.com</a><br><br></div>