I've just verified that in: class C { public: C(int a); }; C v[3] = {1,2,3.0}; the InitListExpr returned by InitListExpr::getSyntacticForm misses all the fundamental info about implicit casts and CXXConstructExpr. Is this deliberate (why?) or it is a bug to fix?