Parse source as c++ to avoid diagnostic errors.

Also mention diagnostics if they exist, instead of visiting.