From: Richard Biener Date: Thu, 13 Mar 2025 13:29:06 +0000 (+0100) Subject: Add -[DU]_FORTIFY_SOURCE[=n] to DW_AT_producer X-Git-Tag: basepoints/gcc-16~1471 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8912313df87679e202f2897ec25c924a67ee8117;p=thirdparty%2Fgcc.git Add -[DU]_FORTIFY_SOURCE[=n] to DW_AT_producer The following makes sure to record -D_FORTIFY_SOURCE=n and -U_FORTIFY_SOURCE in the DW_AT_producer debuginfo attribute when present on the compiler command line. * opts.cc (gen_producer_string): Record -D and -U with _FORTIFY_SOURCE prefix. --- diff --git a/gcc/opts.cc b/gcc/opts.cc index 23900c7b1c0..80c7a971582 100644 --- a/gcc/opts.cc +++ b/gcc/opts.cc @@ -3831,9 +3831,7 @@ gen_command_line_string (cl_decoded_option *options, case OPT_v: case OPT_w: case OPT_L: - case OPT_D: case OPT_I: - case OPT_U: case OPT_SPECIAL_unknown: case OPT_SPECIAL_ignore: case OPT_SPECIAL_warn_removed: @@ -3869,6 +3867,18 @@ gen_command_line_string (cl_decoded_option *options, case OPT_fchecking_: /* Ignore these. */ continue; + case OPT_D: + case OPT_U: + if (startswith (options[i].arg, "_FORTIFY_SOURCE") + && (options[i].arg[sizeof ("_FORTIFY_SOURCE") - 1] == '\0' + || (options[i].opt_index == OPT_D + && options[i].arg[sizeof ("_FORTIFY_SOURCE") - 1] == '='))) + { + switches.safe_push (options[i].orig_option_with_args_text); + len += strlen (options[i].orig_option_with_args_text) + 1; + } + /* Otherwise ignore these. */ + continue; case OPT_flto_: { const char *lto_canonical = "-flto";