<div dir="ltr">Hi,<div><br></div><div>I am trying to transform all T a, b, c = ...; to single line declarations:</div><div><br></div><div>T a;</div><div>T b;</div><div>T c = ...;</div><div><br></div><div>This works well by matching for DeclStmt and iterating through the DeclGroup. Unfortunately, a global declared T a, b, c = ...;  does not result in such a DeclStmt:</div><div><br></div><div><cpp></div><div><div>int alone;</div><div>int alone2 = 3;</div><div><br></div><div>int notalone1, notalone2 = 4;</div><div><br></div><div>int main(void)</div><div>{</div><div><span class="" style="white-space:pre">   </span>int lalone;</div><div><span class="" style="white-space:pre">        </span>int lalone2 = 3;</div><div><br></div><div><span class="" style="white-space:pre">  </span>int lnotalone1, lnotalone2 = 4;</div><div><br></div><div>}</div></div><div></cpp></div><div><br></div><div>>> clang-check -ast-dump test.c --<br></div><div><div>TranslationUnitDecl 0x1742960 <<invalid sloc>> <invalid sloc></div><div>|-TypedefDecl 0x1742e58 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128'</div><div>|-TypedefDecl 0x1742eb8 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128'</div><div>|-TypedefDecl 0x1743228 <<invalid sloc>> <invalid sloc> implicit __builtin_va_list '__va_list_tag [1]'</div><div>|-VarDecl 0x1743288 </tmp/test.c:1:1, col:5> col:5 alone 'int'</div><div>|-VarDecl 0x1743338 <line:2:1, col:14> col:5 alone2 'int' cinit</div><div>| `-IntegerLiteral 0x1743398 <col:14> 'int' 3</div><div>|-VarDecl 0x17433c8 <line:4:1, col:5> col:5 notalone1 'int'</div><div>|-VarDecl 0x1743438 <col:1, col:28> col:16 notalone2 'int' cinit</div><div>| `-IntegerLiteral 0x1743498 <col:28> 'int' 4</div><div>`-FunctionDecl 0x1743590 <line:6:1, line:13:1> line:6:5 main 'int (void)'</div><div>  `-CompoundStmt 0x1789d80 <line:7:1, line:13:1></div><div>    |-DeclStmt 0x1789b90 <line:8:2, col:12></div><div>    | `-VarDecl 0x1789b30 <col:2, col:6> col:6 lalone 'int'</div><div>    |-DeclStmt 0x1789c38 <line:9:2, col:17></div><div>    | `-VarDecl 0x1789bb8 <col:2, col:16> col:6 lalone2 'int' cinit</div><div>    |   `-IntegerLiteral 0x1789c18 <col:16> 'int' 3</div><div>    `-DeclStmt 0x1789d68 <line:11:2, col:32></div><div>      |-VarDecl 0x1789c60 <col:2, col:6> col:6 lnotalone1 'int'</div><div>      `-VarDecl 0x1789cd0 <col:2, col:31> col:18 lnotalone2 'int' cinit</div><div>        `-IntegerLiteral 0x1789d30 <col:31> 'int' 4</div></div><div><br></div><div><div>>> clang-check -version</div><div>LLVM (<a href="http://llvm.org/">http://llvm.org/</a>):</div><div>  LLVM version 3.7.0</div><div>  Optimized build.</div><div>  Built Oct 31 2015 (11:07:58).</div><div>  Default target: x86_64-unknown-linux-gnu</div><div>  Host CPU: ivybridge</div></div><div><br></div><div>As you can see, each notalone is a VarDecl whereas VarDecl for lnotaloneX is grouped in a DeclStmt. Is there any other way to find all the init-declarator lists?</div><div><br></div><div>Thanks!</div></div>