lto/109263 - lto-wrapper and -g0 -ggdb

Message ID 20230323160030.02D4813596@imap2.suse-dmz.suse.de
State Accepted
Headers
Series lto/109263 - lto-wrapper and -g0 -ggdb |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Richard Biener March 23, 2023, 4 p.m. UTC
  The following makes lto-wrapper deal with non-combined debug
disabling / enabling option combinations properly.  Interestingly
-gno-dwarf also enables debug.

Bootstrap / regtest running on x86_64-unknown-linux-gnu.

OK?  Or do we want to try harder to zap earlier -g0 when later
-g* appear?

	PR lto/109263
	* lto-wrapper.c (run_gcc): Parse alternate debug options
	as well, they always enable debug.
---
 gcc/lto-wrapper.cc | 10 ++++++++++
 1 file changed, 10 insertions(+)
  

Comments

Jeff Law April 2, 2023, 9:16 p.m. UTC | #1
On 3/23/23 10:00, Richard Biener via Gcc-patches wrote:
> The following makes lto-wrapper deal with non-combined debug
> disabling / enabling option combinations properly.  Interestingly
> -gno-dwarf also enables debug.
> 
> Bootstrap / regtest running on x86_64-unknown-linux-gnu.
> 
> OK?  Or do we want to try harder to zap earlier -g0 when later
> -g* appear?
> 
> 	PR lto/109263
> 	* lto-wrapper.c (run_gcc): Parse alternate debug options
> 	as well, they always enable debug.
So I think the agreement was that later -g options override, but don't 
completely disable.  So OK.

Jeff
  

Patch

diff --git a/gcc/lto-wrapper.cc b/gcc/lto-wrapper.cc
index fe8c5f6e80d..5186d040ce0 100644
--- a/gcc/lto-wrapper.cc
+++ b/gcc/lto-wrapper.cc
@@ -1564,6 +1564,16 @@  run_gcc (unsigned argc, char *argv[])
 	  skip_debug = option->arg && !strcmp (option->arg, "0");
 	  break;
 
+	case OPT_gbtf:
+	case OPT_gctf:
+	case OPT_gdwarf:
+	case OPT_gdwarf_:
+	case OPT_ggdb:
+	case OPT_gvms:
+	  /* Negative forms, if allowed, enable debug info as well.  */
+	  skip_debug = false;
+	  break;
+
 	case OPT_dumpdir:
 	  incoming_dumppfx = dumppfx = option->arg;
 	  break;