From: Tobias Burnus Date: Wed, 17 Aug 2022 13:59:06 +0000 (+0200) Subject: OpenMP requires: Fix diagnostic filename corner case X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30d425854ee3324b391fe1db71fbea6833c8d17c;p=thirdparty%2Fgcc.git OpenMP requires: Fix diagnostic filename corner case The issue occurs when there is, e.g., main._omp_fn.0 in two files with different OpenMP requires clauses. The function entries in the offload table ends up having the same decl tree and, hence, the diagnostic showed the same filename for both. Solution: Use the .o filename in this case. Note that the issue does not occur with same-named 'static' functions and without the fatal error from the requires diagnostic, there would be later a linker error due to having two 'main'. gcc/ * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic when filenames come out identically. (cherry picked from commit 027b281f1e8de55d959695c7f1e80572fae6dbe7) --- diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index 786e3ebf2f7e..bd1d241ebeb1 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,11 @@ +2022-08-17 Tobias Burnus + + Backport from mainline: + 2022-08-17 Tobias Burnus + + * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic + when filenames come out identically. + 2022-08-17 Tobias Burnus Backport from mainline: diff --git a/gcc/lto-cgraph.cc b/gcc/lto-cgraph.cc index 6d9c36ea8b67..39af9c1bd072 100644 --- a/gcc/lto-cgraph.cc +++ b/gcc/lto-cgraph.cc @@ -1881,6 +1881,11 @@ input_offload_tables (bool do_force_output) if (tmp_decl != NULL_TREE) fn2 = IDENTIFIER_POINTER (DECL_NAME (tmp_decl)); } + if (fn1 == fn2) + { + fn1 = requires_fn; + fn2 = file_data->file_name; + } char buf1[sizeof ("unified_address, unified_shared_memory, " "reverse_offload")];