In g++.dg/torture/20070621-1.C we are trying to stream out a structure that contains a TEMPLATE_DECL. This currently causes a failure in lto-function-out.c:output_tree because not only TEMPLATE_DECL is C++-specific, we can't even access its fields from lto-function-out.c.
The only way I see to handle these cases is to use a langhook. I appreciate that we are trying to get rid of these, but this is only a langhook used when streaming things out (in cc1plus). On the way in (lto1), we would not need the langhook, as we would just mechanically recreate the fields. Thoughts? Diego.