http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56659



             Bug #: 56659

           Summary: Segfault due to missing libcpp error handler for

                    "gfortran -cpp"

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Keywords: ice-on-invalid-code

          Severity: normal

          Priority: P3

         Component: fortran

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: bur...@gcc.gnu.org

                CC: kapi...@rz.rwth-aachen.de





Reported by Paul Kapinos at fortran@gcc,

http://thread.gmane.org/gmane.comp.gcc.fortran/40495

http://gcc.gnu.org/ml/fortran/2013-03/msg00083.html



The problem is that libcpp calls an error handler, which is not set in f951.





Namely,   pfile->cb.error == NULL  but should be point to a function; it has

the the prototype:

 bool (*)(cpp_reader *, int, int, source_location, unsigned int, const char *,

          va_list *) 

C/C++ use:

   in c-opts.c: "cb->error = c_cpp_error;"

the function is declared in c-family/c-common.c.





Test case:

* mkdir -p foo/bar

* chmod 000 foo

* gfortran -cpp some_file.F90

Reply via email to