From: Olivier Hainque Date: Thu, 30 Dec 2021 20:47:31 +0000 (+0000) Subject: Improve sequence logic in cxx_init_decl_processing X-Git-Tag: basepoints/gcc-13~1882 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14cb768ef32ab978a0f5ce2485fa4213c5167fb6;p=thirdparty%2Fgcc.git Improve sequence logic in cxx_init_decl_processing Checking for one_only/weak support is better done before deciding to turn references to __cxa_pure_virtual weak. This helps at least on VxWorks where one_only / weak support varies between kernel and rtp modes as well as across VxWorks versions. 2021-12-30 Olivier Hainque gcc/cp/ * decl.c (cxx_init_decl_processing): Move code possibly altering flag_weak before code testing it. --- diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 5fe341e0b75e..0e37f1a59bc5 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -4718,6 +4718,9 @@ cxx_init_decl_processing (void) nullptr_node = build_int_cst (nullptr_type_node, 0); } + if (! supports_one_only ()) + flag_weak = 0; + abort_fndecl = build_library_fn_ptr ("__cxa_pure_virtual", void_ftype, ECF_NORETURN | ECF_NOTHROW | ECF_COLD); @@ -4733,9 +4736,6 @@ cxx_init_decl_processing (void) if (flag_exceptions) init_exception_processing (); - if (! supports_one_only ()) - flag_weak = 0; - if (modules_p ()) init_modules (parse_in);