https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121574
Nathaniel Shead <nshead at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Target Milestone|--- |16.0
Assignee|unassigned at gcc dot gnu.org |nshead at gcc dot
gnu.org
Resolution|--- |FIXED
--- Comment #6 from Nathaniel Shead <nshead at gcc dot gnu.org> ---
At least partially implemented for GCC16.
This only handles internal-linkage variables and functions (with some effort to
handle templates of such as well, but only if the instantiation occurred
outside purview as well). Other cases (like internal-linkage types) cause too
much churn and difficulty with reporting the diagnostics that the standard says
we have to, without providing hundreds of extra useless diagnostics as a
byproduct.
But this set at least should be sufficient for the uses of including and
exposing C libraries. C++ libraries that want to be modularised can be fixed
to e.g. use 'inline' instead of 'static'. And in general importing such
libraries can be done using header units rather than manually wrapping with a
named module, as header units support providing internal linkage entities.
I'll close this as fixed now as I don't intend to do further work on this.
Thanks again!