Enabling a function based on Language

Tobias Burnus burnus@net-b.de
Tue May 22 07:25:00 GMT 2012


Ian Lance Taylor wrote:
> "Iyer, Balaji V"<balaji.v.iyer@intel.com>  writes:
>
>> 	Is there a #define in GCC that will turn on only for certain languages? I am trying to use build_array_ref but it is giving me a undefined reference for f951. This code that I am trying to use will ONLY execute  if we have a C/C++ code.  Is it possible for me to enclose this inside some #defines (or a combination of them)?
>
> By definition, no, there isn't.  The middle-end is compiled once, into a
> library.  Then each frontend is linked against that library.
>
> Calling a frontend function like build_array_ref from the middle-end is
> always a mistake.  In the middle-end you should probably be making a
> POINTER_PLUS_EXPR node or something along those lines.

Unless, of course, one goes the route which Richard once suggested: 
Adding array and scalarizer support to the middle end,
http://gcc.gnu.org/wiki/GCCGathering2011Fortran#Scalarizer

(See all three links; mistakes in the Wiki are mine, made when I tried 
to summarize/understand Richard's draft patches. The project got stalled 
as there was not enough developer time on the Fortran side and as the 
current approach works relatively well. ME support would be beneficial 
as it would allow for certain optimizations which are not possible in 
the front end.)

Tobias



More information about the Gcc mailing list