[Bug ipa/106816] noreturn/pure attributes are not set correctly on multiversioned functions
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Sep 2 17:26:08 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106816
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2022-09-02
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> ---
Like this?
diff --git a/gcc/config/i386/i386-features.cc
b/gcc/config/i386/i386-features.cc
index fd212262f50..4904e4d71b3 100644
--- a/gcc/config/i386/i386-features.cc
+++ b/gcc/config/i386/i386-features.cc
@@ -3269,6 +3269,9 @@ ix86_get_function_versions_dispatcher (void *decl)
/* Right now, the dispatching is done via ifunc. */
dispatch_decl = make_dispatcher_decl (default_node->decl);
TREE_NOTHROW (dispatch_decl) = TREE_NOTHROW (fn);
+ TREE_THIS_VOLATILE (dispatch_decl) = TREE_THIS_VOLATILE (fn);
+ TREE_READONLY (dispatch_decl) = TREE_READONLY (fn);
+ DECL_PURE_P (dispatch_decl) = DECL_PURE_P (fn);
dispatcher_node = cgraph_node::get_create (dispatch_decl);
gcc_assert (dispatcher_node != NULL);
More information about the Gcc-bugs
mailing list