Skip to content

Commit

Permalink
gcc12's regex header file relies on a std::vector<int> instance, expo…
Browse files Browse the repository at this point in the history
…rt it.

The C++ modules marks the std::vector<int> instantiation as not visible because
it came from the `regex` header file which we did not explicitly include.

root-project/root@a785402 introduces checks if certain declaration is visible
in dictionary generation time which was intending to semantically improve the
coherence by what the user "allowed" (or requested) rootcling to see vs what
it can see globally. While this model works well it seems to not work for
template instantiations as they won't be re-instantiated with visible modifier.

This patch works around the current issue seen with libstdc++ 12 but a better
solution would be to implement a finer grained control over the implicit template
instatiations when generating a dictionary.

Fixes root-project#11329
  • Loading branch information
vgvassilev committed Oct 15, 2022
1 parent f385b3c commit f57cdbe
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions interpreter/cling/include/cling/std.modulemap
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ module "std" [system] {
}
module "regex" {
export *
export vector
header "regex"
}
module "scoped_allocator" {
Expand Down

0 comments on commit f57cdbe

Please sign in to comment.