ggc: from static to extern: where is the GTY(()) ending up?

Georg-Johann Lay avr@gjlay.de
Thu Jan 26 19:36:00 GMT 2012


for the avr prort I'd like to change some GTYed rtx from atatic to extern, i.e.
from

// avr.c
static GTY(()) rtx var;

to

// avr-protos.h
#ifdef RTX_CODE
extern GTY(()) rtx var;
#endif /* RTX_CODE */

// avr.c
rtx var;

In the first variant I see markers generated in gt-avr.h but in the second
variant I cannot find any markers for var in the whole build gcc directory.

What am I missing?

With the following additional line it works and there are markers in gt-avr.h:

// avr.c
extern GTY(()) rtx var;
rtx var;

Who is responsible for the global markers? I'd expect a reference to var in at
least one place of some auto-generated h file...

>From http://gcc.gnu.org/onlinedocs/gccint/GGC-Roots.html the second variant
should work, shouldn't it?

Johann



More information about the Gcc-help mailing list