Commit 6dbf678a by Richard Stallman

*** empty log message ***

From-SVN: r1002
parent 64309441
...@@ -1069,6 +1069,18 @@ yylex () ...@@ -1069,6 +1069,18 @@ yylex ()
if (lastiddecl != 0 && TREE_CODE (lastiddecl) == TYPE_DECL) if (lastiddecl != 0 && TREE_CODE (lastiddecl) == TYPE_DECL)
value = TYPENAME; 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) else if (doing_objc_thang)
{ {
tree objc_interface_decl = lookup_interface (yylval.ttype); tree objc_interface_decl = lookup_interface (yylval.ttype);
......
...@@ -1906,13 +1906,19 @@ rest_of_decl_compilation (decl, asmspec, top_level, at_end) ...@@ -1906,13 +1906,19 @@ rest_of_decl_compilation (decl, asmspec, top_level, at_end)
TIMEVAR (varconst_time, TIMEVAR (varconst_time,
{ {
make_decl_rtl (decl, asmspec, top_level); make_decl_rtl (decl, asmspec, top_level);
/* Don't output anything /* For a user-invisible decl that should be replaced
when a tentative file-scope definition is seen. by its value when used, don't output anything. */
But at end of compilation, do output code for them. */ if (! (TREE_CODE (decl) == VAR_DECL
if (! (! at_end && top_level && DECL_IGNORED_P (decl) && TREE_READONLY (decl)
&& (DECL_INITIAL (decl) == 0 && DECL_INITIAL (decl) != 0))
|| DECL_INITIAL (decl) == error_mark_node))) /* Don't output anything
assemble_variable (decl, top_level, at_end); 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_IGNORED_P (decl))))
assemble_variable (decl, top_level, at_end);
}); });
else if (TREE_REGDECL (decl) && asmspec != 0) 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