https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97031

--- Comment #4 from jean-pierre.flam...@univ-lille.fr ---
see below:

----- Mail original -----
De: "kargl at gcc dot gnu.org" <gcc-bugzi...@gcc.gnu.org>
À: "jean-pierre flament" <jean-pierre.flam...@univ-lille.fr>
Envoyé: Dimanche 13 Septembre 2020 11:55:28
Objet: [Bug fortran/97031] the content of a comment line breaks compilation

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97031

--- Comment #3 from Steve Kargl <sgk at troutmask dot apl.washington.edu> ---
On Sun, Sep 13, 2020 at 08:02:01AM +0000, jean-pierre.flam...@univ-lille.fr
wrote:
> 
> I just noticed that cpp recognizes the extensions .fpp .F and other uppercase
> extensions. 
> This is why I added -cpp in the gfortran command (otherwise I have a 
> diagnostic
> because of #ifdef's
> 
> I have renamed my file with the  .fpp extension; with  "-cpp" in the gfortran
> submission I get the same errors.
> 
> If I compile the file with extension *.f or .fpp without -cpp  
> 
>  1) the compilation has no error 
>  2) a #ifdef...#endif is recognized even with a .f extension, without -cpp, in
> my simple example, (I should check that the directive really is taken into
> account !) 
>  3) IF I compile my full project in a makefile, the absence of "-cpp" in the
> gfortran command induces 
>     a "Illegal preprocessor directive" error in all the routines having that 
> #ifdef...#endif
> 

I don't quite follow you.  But, it come down to gfortran uses
the C pre-processor when asked to pre-process a file.  If you 
have a C language construct such as '/*' in your Fortran code 
it will cause problems.

====> In my remarks just above  2) and 3) I just wanted to point that,
apprently, in addtion, gfortran+cpp seem to have a different behaviour when
called in a makefile or in a simple command line. I can check that more.

===>  as regards the intial point: do you find it normal that, processing a
fortran file (and I imagine that CPP knows that point since it was launched 
within the gfortran command) CPP does not consider fortran comment lines as
such, and ignores their content.
    In addition I noticed that there is a '*/' construct farther in the file in
an other commented line (line = "... */ ...", and that thus all the stuff
inbetween was ignored, suppresing all the declarations  (character and others)
ans some other statements; this explains the diagnostics of the compiler.
     another questions raises:  the '*/' was within " ", i.e. a character
string... a legal fortran statement.
     before commenting this line I had an other message reporting an end for
file before the end of a comment (I don't remember exactly
     the formulation). That's why I  finally decided to create the test file
that you have, commenting all the lines with call's and the famous  line =
"...." . I know understand what happened. 

  but once again: cpp does not seem  to understand the syntax of fortran ! 
this is very annoying !

Reply via email to