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 !