tree.c (free_lang_data_in_decl): Clear DECL_INITIAL for automatic variables again.

2010-10-15  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
	for automatic variables again.

	* g++.dg/lto/20101015-1_0.C: New testcase.

From-SVN: r165511
This commit is contained in:
Richard Guenther 2010-10-15 15:17:06 +00:00 committed by Richard Biener
parent fbdaa0b24c
commit 638fd1e513
4 changed files with 43 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2010-10-15 Richard Guenther <rguenther@suse.de>
* tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
for automatic variables again.
2010-10-15 Joseph Myers <joseph@codesourcery.com>
* doc/extend.texi (Variable Length): Don't refer to VLAs not

View file

@ -1,3 +1,7 @@
2010-10-15 Richard Guenther <rguenther@suse.de>
* g++.dg/lto/20101015-1_0.C: New testcase.
2010-10-15 Richard Guenther <rguenther@suse.de>
PR testsuite/46021

View file

@ -0,0 +1,31 @@
// { dg-lto-do assemble }
class DOMString { };
class DocumentImpl;
class NodeImpl {
public:
static const DOMString&
mapPrefix(const DOMString &prefix, const DOMString &namespaceURI, short nType);
static DOMString getXmlnsURIString();
};
class DOM_Node {
public:
enum NodeType { ATTRIBUTE_NODE = 2 };
};
class AttrImpl: public NodeImpl {
public:
AttrImpl(DocumentImpl *ownerDocument, const DOMString &aName);
};
class AttrNSImpl: public AttrImpl {
AttrNSImpl(DocumentImpl *ownerDoc, const DOMString &namespaceURI, const DOMString &qualifiedName);
};
AttrNSImpl::AttrNSImpl(DocumentImpl *ownerDoc,
const DOMString &fNamespaceURI,
const DOMString &qualifiedName)
: AttrImpl(ownerDoc, qualifiedName)
{
DOMString xmlnsURI = NodeImpl::getXmlnsURIString();
DOMString prefix;
bool xmlnsAlone = false;
const DOMString& URI = xmlnsAlone ? xmlnsURI : mapPrefix(prefix, fNamespaceURI, DOM_Node::ATTRIBUTE_NODE);
}

View file

@ -4513,8 +4513,9 @@ free_lang_data_in_decl (tree decl)
}
else if (TREE_CODE (decl) == VAR_DECL)
{
if (DECL_EXTERNAL (decl)
&& (!TREE_STATIC (decl) || !TREE_READONLY (decl)))
if ((DECL_EXTERNAL (decl)
&& (!TREE_STATIC (decl) || !TREE_READONLY (decl)))
|| (decl_function_context (decl) && !TREE_STATIC (decl)))
DECL_INITIAL (decl) = NULL_TREE;
}
else if (TREE_CODE (decl) == TYPE_DECL)