On Mon, Jul 27, 2026 at 10:43 PM Josef Melcr <[email protected]> wrote: > > Changes since v4: > - Implemented Jakub's suggestions. > - The attribute is now available outside of the gnu namespace with > the __attribute__ syntax. > - Moved the attribute handler to c-family/c-attribs.cc. > - Removed the CALLBACK_ATTR_IDENT macro. > > I decided to update the names of identifiers, attribute lists and other > things to keep things consistent with the new name. > > I moved the get_nth_list_elem to c-attribs.cc together with the > attribute handler, but it will be removed by the next patch. I decided > to keep it in this patch solely to preserve the build, as I didn't want > to make any changes to the functions being moved. > > Best regards, > Josef > > gcc/ChangeLog: > > * attr-callback.cc (callback_build_attr): Use "callback_only" > instead of the macro. > (callback_edge_callee_has_attr): Likewise. > (callback_fetch_attr_by_edge): Likewise. > (get_nth_list_elem): Move to c-family/c-attribs.cc. > (handle_callback_attribute): Rename to > handle_callback_only_attribute, move to c-family/c-attribs.cc. > * attr-callback.h (CALLBACK_ATTR_IDENT): Remove the macro. > (handle_callback_attribute): Remove the declaration. > * builtin-attrs.def (ATTR_CALLBACK): Rename to > ATTR_CALLBACK_ONLY. > (ATTR_CALLBACK_ONLY): Identifier for the attribute for builtins. > (DEF_CALLBACK_ATTRIBUTE): Rename to DEF_CALLBACK_ONLY_ATTRIBUTE. > (DEF_CALLBACK_ONLY_ATTRIBUTE): Renamed definition macro for builtins. > (GOMP): Use the renamed macro. > (ATTR_CALLBACK_GOMP_LIST): Renamed to > ATTR_CALLBACK_ONLY_GOMP_LIST. > (ATTR_CALLBACK_ONLY_GOMP_LIST): ATTR_NOTHROW_LIST with the > callback_only attribute for libgomp functions. > * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Use > "callback_only" instead of the macro. > (cgraph_node::verify_node): Likewise. > * doc/extend.texi: Add callback_only attribute docs. > * ipa-cp.cc (purge_useless_callback_edges): Use "callback_only" > instead of the macro. > * ipa-param-manipulation.cc > (drop_decl_attribute_if_params_changed_p): Likewise. > * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Likewise. > * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC): Use the > renamed attribute list. > (BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED): Likewise. > (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC): Likewise. > (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME): Likewise. > (BUILT_IN_GOMP_PARALLEL): Likewise. > (BUILT_IN_GOMP_PARALLEL_SECTIONS): Likewise. > (BUILT_IN_GOMP_TEAMS_REG): Likewise. > * tree-core.h: Update the ECF_CB flag comment. > > gcc/c-family/ChangeLog: > > * c-attribs.cc (handle_callback_only_attribute): Moved from > attr-callback.cc. > (get_nth_list_elem): Likewise. > > gcc/fortran/ChangeLog: > > * f95-lang.cc (ATTR_CALLBACK_GOMP_LIST): Rename to > ATTR_CALLBACK_ONLY_GOMP_LIST. > (ATTR_CALLBACK_ONLY_GOMP_LIST): Fortran counterpart for the > attribute list in builtin-attrs.def. > > gcc/testsuite/ChangeLog: > > * gcc.dg/attr-callback.c: New test. > * gcc.dg/ipa/ipcp-cb2.c: New test. >
On Linux/x86-64, I got FAIL: gcc.dg/attr-callback.c (test for errors, line 52) FAIL: gcc.dg/attr-callback.c (test for errors, line 56) FAIL: gcc.dg/attr-callback.c (test for errors, line 60) FAIL: gcc.dg/attr-callback.c (test for excess errors) -- H.J.
