[Bug driver/105355] New: -msmall-data-limit= unexpectedly accepts a separate argument
izbyshev at ispras dot ru
gcc-bugzilla@gcc.gnu.org
Fri Apr 22 23:20:28 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105355
Bug ID: 105355
Summary: -msmall-data-limit= unexpectedly accepts a separate
argument
Product: gcc
Version: 10.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: driver
Assignee: unassigned at gcc dot gnu.org
Reporter: izbyshev at ispras dot ru
Target Milestone: ---
Target: riscv64-linux-gnu
"msmall-data-limit=" is marked as both Joined and Separate at
https://gcc.gnu.org/git?p=gcc.git;a=blob;f=gcc/config/riscv/riscv.opt;h=492aad1232404c2711811c3d04f2e02902d1b740;hb=7964ab6c364c410c34efe7ca2eba797d36525349#l95.
This is inconsistent with other "-m" options (which permit only joined
spelling) and allows strange commands like "riscv64-linux-gnu-gcc
-msmall-data-limit= 0 test.c".
Note that even if joined spelling is used by the user, GCC driver splits it for
the frontend:
riscv64-linux-gnu-gcc -msmall-data-limit=0 test.c -###
[...]
/usr/lib/gcc-cross/riscv64-linux-gnu/10/cc1 -quiet -imultilib . -imultiarch
riscv64-linux-gnu test.c -quiet -dumpbase test.c "-mno-small-data-limit=" 0
"-march=rv64imafdc" "-mabi=lp64d" -auxbase test -fstack-protector-strong
-Wformat -Wformat-security -o /tmp/ccIJvDDO.s
[...]
This inconsistency unnecessarily complicates life of tools that parse compiler
commands (e.g. for static analysis).
More information about the Gcc-bugs
mailing list