Fwd: Preprocess files with gcc/gfortran vs. cpp

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am trying to figure out if there is a bug in the preprocessing of
gcc/gfortran while not in cpp.

I am using gcc-5.2.0 with gcc, gfortran and cpp, i.e.
$> which gcc
$> which gfortran
$> which cpp
yields:
/opt/generic/gcc/5.2.0/bin/gcc
/opt/generic/gcc/5.2.0/bin/gfortran
/opt/generic/gcc/5.2.0/bin/cpp

I have also tested with 4.9.2 which yields the same results.

Now I want to try to concatenate several variables together to achieve
a dynamic variable naming scheme of variables, modules etc.
Here is a basic example:

<<< start-of-file
#define A_CC(a,b) A_CCX(a,b)
#define A_CCX(a,b) a ## b
#define A_NEW mod
#define MY_MOD A_CC(A_NEW,_hello)
program MY_MOD
  integer :: t
  t = 2
  print *, t
end program
<<< end-of-file

Now if I do:
$> cpp -E -P -nostdinc
program mod_hello
  integer :: t
  t = 2
  print *, t
end program

which is the expected result.
Doing the same with gcc/gfortran yields
$> gcc -P -E -nostdinc
program mod ## _hello
  integer :: t
  t = 2
  print *, t
end program

Am I missing some point here?
I would have expected gcc/gfortran to use the _same_ preprocessing
utility as that provided in cpp?

I do require a double nesting of the concatenation to ensure expansion.

--
Kind regards Nick



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux