Commit 6dbf678a by Richard Stallman

*** empty log message ***

From-SVN: r1002
parent 64309441
......@@ -1069,6 +1069,18 @@ yylex ()
if (lastiddecl != 0 && TREE_CODE (lastiddecl) == TYPE_DECL)
value = TYPENAME;
/* A user-invisible read-only initialized variable
should be replaced by its value.
We handle only strings since that's the only case used in C. */
else if (lastiddecl != 0 && TREE_CODE (lastiddecl) == VAR_DECL
&& DECL_IGNORED_P (lastiddecl)
&& TREE_READONLY (lastiddecl)
&& DECL_INITIAL (lastiddecl) != 0
&& TREE_CODE (DECL_INITIAL (lastiddecl)) == STRING_CST)
{
yylval.ttype = DECL_INITIAL (lastiddecl);
value = STRING;
}
else if (doing_objc_thang)
{
tree objc_interface_decl = lookup_interface (yylval.ttype);
......
......@@ -1906,12 +1906,18 @@ rest_of_decl_compilation (decl, asmspec, top_level, at_end)
TIMEVAR (varconst_time,
{
make_decl_rtl (decl, asmspec, top_level);
/* For a user-invisible decl that should be replaced
by its value when used, don't output anything. */
if (! (TREE_CODE (decl) == VAR_DECL
&& DECL_IGNORED_P (decl) && TREE_READONLY (decl)
&& DECL_INITIAL (decl) != 0))
/* Don't output anything
when a tentative file-scope definition is seen.
But at end of compilation, do output code for them. */
if (! (! at_end && top_level
&& (DECL_INITIAL (decl) == 0
|| DECL_INITIAL (decl) == error_mark_node)))
|| DECL_INITIAL (decl) == error_mark_node
|| DECL_IGNORED_P (decl))))
assemble_variable (decl, top_level, at_end);
});
else if (TREE_REGDECL (decl) && asmspec != 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment