This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RTL/SYMREF/VOLATILE question


xyzzy@hotpop.com wrote:
In essence I am passing this rtx up the chain to the expand_va_arg code, so I don't KNOW what insns are emitted unless I do a lot of painful digging.

There still isn't enough info here to understand what your problem is.


There should be no need to use a volatile mem in EXPAND_BUILTIN_VA_ARG.

The compiler will only eliminate symbol references that are unused. So if they are being optimized away, then either the C source code is not using them, or else the RTL you are emitting is not using them. This could be a bug in either the C source code or in your RTL, neither or which I have access to, so I can't tell.

Returning a naked symbol ref from EXPAND_BUILTIN_VA_ARG is unlikely to be useful. The return value is supposed to be the address of the next unnamed argument, and I don't see how it is possible for such arguments to be located inside a variable. Hence the address can't possibly be a symbol_ref. The address could be stored in a variable, but in that case you need a MEM of a SYMBOL_REF.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]