https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96230
Bug ID: 96230
Summary: driver: ICE in process_command, at gcc.c:5095
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: driver
Assignee: unassigned at gcc dot gnu.org
Reporter: z.zhanghaijian at huawei dot com
Target Milestone: ---
For the caseļ¼
cat foo.c
void foo (void)
{
return;
}
$gcc foo.c -S -dumpbase "" -dumpbase-ext .c -o foo.o
gcc: internal compiler error: in process_command, at gcc.c:5095
0x40ca3b process_command
../.././gcc/gcc.c:5095
0x41335b driver::set_up_specs() const
../.././gcc/gcc.c:8077
0x403b03 driver::main(int, char**)
../.././gcc/gcc.c:7885
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
I think we shoud consider the dumpbase is an empty string when with -S/-c.
Proposed patch:
diff --git a/gcc/gcc.c b/gcc/gcc.c
index c0eb3c10cfd..b8a9a8eada9 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -5086,7 +5086,7 @@ process_command (unsigned int decoded_options_count,
extension from output_name before combining it with dumpdir. */
if (dumpbase_ext)
{
- if (!dumpbase)
+ if (!dumpbase || !*dumpbase)
{
free (dumpbase_ext);
dumpbase_ext = NULL;
Any suggestions?