parent
64309441e0
commit
6dbf678a01
12
gcc/c-lex.c
12
gcc/c-lex.c
|
@ -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);
|
||||
|
|
20
gcc/toplev.c
20
gcc/toplev.c
|
@ -1906,13 +1906,19 @@ rest_of_decl_compilation (decl, asmspec, top_level, at_end)
|
|||
TIMEVAR (varconst_time,
|
||||
{
|
||||
make_decl_rtl (decl, asmspec, top_level);
|
||||
/* 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)))
|
||||
assemble_variable (decl, top_level, at_end);
|
||||
/* 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_IGNORED_P (decl))))
|
||||
assemble_variable (decl, top_level, at_end);
|
||||
});
|
||||
else if (TREE_REGDECL (decl) && asmspec != 0)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue