]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fortran: Fix -Wno-missing-include-dirs handling [PR55534]
authorTobias Burnus <tobias@codesourcery.com>
Tue, 21 Sep 2021 06:27:00 +0000 (08:27 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Tue, 21 Sep 2021 06:28:30 +0000 (08:28 +0200)
commit417ea5c02cef7f000e66d1af22b066c2c1cda047
tree1212ed64ad39e507f11d767384a56c08136a7d36
parent63c6446f77b9001d26f973114450d790749f282b
Fortran: Fix -Wno-missing-include-dirs handling [PR55534]

gcc/fortran/ChangeLog:

PR fortran/55534
* cpp.c: Define GCC_C_COMMON_C for #include "options.h" to make
cpp_reason_option_codes available.
(gfc_cpp_register_include_paths): Make static, set pfile's
warn_missing_include_dirs and move before caller.
(gfc_cpp_init_cb): New, cb code moved from ...
(gfc_cpp_init_0): ... here.
(gfc_cpp_post_options): Call gfc_cpp_init_cb.
(cb_cpp_diagnostic_cpp_option): New. As implemented in c-family
to match CppReason flags to -W... names.
(cb_cpp_diagnostic): Use it to replace single special case.
* cpp.h (gfc_cpp_register_include_paths): Remove as now static.
* gfortran.h (gfc_check_include_dirs): New prototype.
(gfc_add_include_path): Add new bool arg.
* options.c (gfc_init_options): Don't set -Wmissing-include-dirs.
(gfc_post_options): Set it here after commandline processing. Call
gfc_add_include_path with defer_warn=false.
(gfc_handle_option): Call it with defer_warn=true.
* scanner.c (gfc_do_check_include_dir, gfc_do_check_include_dirs,
gfc_check_include_dirs): New. Diagnostic moved from ...
(add_path_to_list): ... here, which came before cmdline processing.
Take additional bool defer_warn argument.
(gfc_add_include_path): Take additional defer_warn arg.
* scanner.h (struct gfc_directorylist): Reorder for alignment issues,
add new 'bool warn'.

libgfortran/ChangeLog:
PR fortran/55534
* configure.ac (AM_FCFLAGS): Add -Wno-missing-include-dirs.
* configure: Regenerate.

libgomp/ChangeLog:
PR fortran/55534
* testsuite/libgomp.fortran/fortran.exp: Add -Wno-missing-include-dirs
to ALWAYS_CFLAGS.
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.

gcc/testsuite/ChangeLog:
* gfortran.dg/include_6.f90: Change dg-error to
dg-warning and update pattern.
* gfortran.dg/include_14.f90: New test.
* gfortran.dg/include_15.f90: New test.
* gfortran.dg/include_16.f90: New test.
* gfortran.dg/include_17.f90: New test.
* gfortran.dg/include_18.f90: New test.
* gfortran.dg/include_19.f90: New test.
* gfortran.dg/include_20.f90: New test.
* gfortran.dg/include_21.f90: New test.
19 files changed:
gcc/fortran/cpp.c
gcc/fortran/cpp.h
gcc/fortran/gfortran.h
gcc/fortran/options.c
gcc/fortran/scanner.c
gcc/fortran/scanner.h
gcc/testsuite/gfortran.dg/include_14.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/include_15.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/include_16.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/include_17.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/include_18.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/include_19.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/include_20.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/include_21.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/include_6.f90
libgfortran/configure
libgfortran/configure.ac
libgomp/testsuite/libgomp.fortran/fortran.exp
libgomp/testsuite/libgomp.oacc-fortran/fortran.exp