<div dir="ltr">Hi All,<div><br></div><div style>Here's a simple patch that fixes a bug in VarDecl::getSourceRange() which occurs when a static member array has an element type with an implicit initializer expression.</div>
<div style><br></div><div style>Basically, this detect the edge case where the initializer has no size and falls back on the usual DeclaratorDecl::getSourceRange() allowing any postfix tokens to be included in the range calculation.</div>
<div style><br></div><div style>All tests passed locally, but I'm afraid I didn't have a chance to construct a suitable test-case. However the following snippet reproduces the issue if needed. Either way I hope this should be safe to commit.</div>
<div style><br></div><div style>----</div><div style><br></div><div style><div>struct ElemType { char padding[16]; };</div><div><br></div><div>class TemplatedClass</div><div>{</div><div>public:</div><div><span class="" style="white-space:pre">     </span>static ElemType Arr[4];</div>
<div>};</div><div><br></div><div>ElemType TemplatedClass::Arr[4];  // Issue: '[4]' missing from VarDecl::getSourceRange()</div><div><br></div><div>static TemplatedClass Instance;</div><div><br></div><div>----</div>
<div><br></div><div style>Cheers,</div><div style>Will.</div><div><br></div></div></div>