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

            Bug ID: 118579
           Summary: [OpenMP] c-parser.cc: Improve location of
                    c_parser_omp_variable_list for kind=0
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: diagnostic, openmp
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: parras at gcc dot gnu.org
  Target Milestone: ---

tree list
                    = c_parser_omp_variable_list (parser, loc,
OMP_CLAUSE_ERROR,
                                                  NULL_TREE);

where kind = 0 (== OMP_CLAUSE_ERROR) has no location data for decls, which
leads to bad error diagnostic, in particular with declare variant's
adjust_args,
cf. c_finish_omp_declare_variant, but also elsewhere.

This has been fixed for C++ with:

r15-6512-gcf94ba812ca496
    OpenMP/C++: Store location in cp_parser_omp_var_list for kind=0

https://gcc.gnu.org/pipermail/gcc-patches/2025-January/672469.html

The same fix should also be done for C!

We may consider to also add a testcase for this...

Reply via email to