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

            Bug ID: 94228
           Summary: Preprocessor inconsistency for macros when invoked
                    from gfortran
           Product: gcc
           Version: 9.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: markwayne1969 at gmail dot com
  Target Milestone: ---

This report details differing behavior for preprocessor directives containing
variadic macros when processed directly by cpp

    $ cpp-9 --version
    cpp-9 (Homebrew GCC 9.2.0_3) 9.2.0
    Copyright (C) 2019 Free Software Foundation, Inc.

and when invoked from the gfortran compiler

    $ gfortran-9 --version
    GNU Fortran (Homebrew GCC 9.2.0_3) 9.2.0
    Copyright (C) 2019 Free Software Foundation, Inc.

An MWE is included.

1) The source ('test-function-macro.f90'):

    ! filename: test-function-macro.f90
    ! v0: Thu Mar 19 11:06:40 2020

    program test_function_macro
       implicit none

    #define F(...) print *, 0,__VA_ARGS__
       F('1','2','3')

    end program test_function_macro

2) cpp direct processing:

    $ cpp-9 test-function-macro.f90
    # 1 "test-function-macro.f90"
    # 1 "<built-in>"
    # 1 "<command-line>"
    # 1 "test-function-macro.f90"
    ! filename: test-function-macro.f90
    ! v0: Thu Mar 19 11:06:40 2020

    program test_function_macro
       implicit none


       print *, 0,'1','2','3'

    end program test_function_macro

3) gfortran invocation:

    $ gfortran-9 -cpp test-function-macro.f90
    test-function-macro.f90:7:0:

        7 | #define F(...) print *, 0,__VA_ARGS__
          |
    Error: syntax error in macro parameter list


4) Comments

  i) the behavior in item 2) is the desired behavior
 ii) the behavior in item 3) is undesired
iii) The system is runs mac OS; the behavior is identical whether the above cpp
is used or the system cpp is used:

    $ cpp --version
    Apple LLVM version 10.0.1 (clang-1001.0.46.4)
    Target: x86_64-apple-darwin18.7.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Reply via email to