https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103931
--- Comment #15 from Bernhard Reutner-Fischer <aldot at gcc dot gnu.org> ---
(In reply to Bernhard Reutner-Fischer from comment #13)
> I'm testing a patch.
I have to admit that this is a mess.
It's even more frustrating now as i did some preparatory cleanup for at least
some of the inconveniences in that area a while ago but never got to apply
these. Anyway.
Not sure if the following would be correct:
Under the assumption that we have a generic "c_ptr" in a module, we know (?)
that "c_ptr" is not ambiguous.
Is that right?
>From what i see from a quick glance, we seem to write more symbols to the
module files than strictly needed, and that does not really help the case.
Short of a broader fix, a quick-hack to avoid the error about ambiguous
intrinsic built-in symbols might be to (*cough*):
--- a/gcc/fortran/module.cc
+++ b/gcc/fortran/module.cc
@@ -5320,6 +5322,11 @@ check_for_ambiguous (gfc_symtree *st, pointer_info
*info)
return false;
}
+ /* A symbol from an intrinsic module is not ambiguous. */
+ /* This should not be necessary, at least not in this form! */
+ if (st_sym->from_intmod != INTMOD_NONE)
+ return false;
+
return true;
}
This works as expected, fixes this specific PR and tests cleanly.
Should i propose this workaround as a patch or is it a bit too gross?
WDYT?