I have a fix for this in progress, though I've been delayed by a number
of real-life issues that have cropped up.
I did have this patch I'd been playing with to submit for 15.1 but I'd
run out of time to submit for at least give a 'sorry' message instead,
because I note that the only places these trees can exist are on the
'function_specific_{optimization,target}' members:
commit a7732d9a119f8d8b442b57c25ad8e493a89e5095 (pr108080_sorry)
Author: Nathaniel Shead <[email protected]>
Date: Thu Jan 16 22:49:10 2025 +1100
Say 'sorry' for unimplemented features
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index 61116fe7669..c96fb2cdd41 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -6366,8 +6366,16 @@ trees_out::core_vals (tree t)
}
WT (t->function_decl.personality);
- WT (t->function_decl.function_specific_target);
- WT (t->function_decl.function_specific_optimization);
+ //WT (t->function_decl.function_specific_target);
+ if (streaming_p () && t->function_decl.function_specific_target)
+ sorry_at (DECL_SOURCE_LOCATION (t),
+ "%<target%> attribute not supported in modules");
+ WT (NULL_TREE);
+ //WT (t->function_decl.function_specific_optimization);
+ if (streaming_p () && t->function_decl.function_specific_optimization)
+ sorry_at (DECL_SOURCE_LOCATION (t),
+ "%<optimize%> attribute not supported in modules");
+ WT (NULL_TREE);
WT (t->function_decl.vindex);
if (DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P (t))
diff --git a/gcc/testsuite/g++.dg/modules/pr108080.H
b/gcc/testsuite/g++.dg/modules/pr108080.H
new file mode 100644
index 00000000000..7f765126b20
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/pr108080.H
@@ -0,0 +1,5 @@
+// PR c++/108080
+// { dg-additional-options "-fmodules" }
+// Give a diagnostic message rather than a crash for unsupported features.
+
+[[gnu::optimize("-O3")]] void foo(); // { dg-message "sorry, unimplemented:
.optimize." }
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1945364
Title:
C++-20 module: internal compiler error
To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/1945364/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs