[Bug middle-end/126822] New: -fhardened target warning cannot be controlled by -Whardened

hello at bjornpagen dot com via Gcc-bugs <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126822

            Bug ID: 126822
           Summary: -fhardened target warning cannot be controlled by
                    -Whardened
           Product: gcc
           Version: 16.1.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hello at bjornpagen dot com
  Target Milestone: ---
              Host: aarch64-apple-darwin24
            Target: aarch64-apple-darwin24
             Build: aarch64-apple-darwin24

On Darwin, -fhardened emits a target-support warning that has no warning
option. -Wno-hardened does not suppress it. -Wno-error=hardened does not demote
it under -Werror. GCC should classify this diagnostic as -Whardened.

Testcase:
int main(){return 0;}

Command:
g++-16 -fhardened -Whardened -Werror -c hardened.cc

Compiler output:
cc1plus: error: '-fhardened' not supported for this target [-Werror]
cc1plus: all warnings being treated as errors

Command:
g++-16 -fhardened -Whardened -Werror -Wno-error=hardened -c hardened.cc

Compiler output:
cc1plus: error: '-fhardened' not supported for this target [-Werror]
cc1plus: all warnings being treated as errors

Command:
g++-16 -fhardened -Wno-hardened -c hardened.cc

Compiler output:
cc1plus: warning: '-fhardened' not supported for this target

Expected result:
-Wno-hardened suppresses the warning. -Wno-error=hardened demotes it when
-Werror is active.

Versions tested:
GCC 16.1.0 reproduces the defect on aarch64-apple-darwin24.
GCC master commit 475e9efffaf8de781d7e17b687faf1807e104b01 was inspected, not
run on Darwin. The target-support diagnostic still uses warning class 0 in
gcc/toplev.cc.
No official Darwin GCC build is available.

Environment:
Using built-in specs.
COLLECT_GCC=g++-16
COLLECT_LTO_WRAPPER=/Users/bjorn/.gcc/versions/16.1.0/libexec/gcc/aarch64-apple-darwin24/16.1.0/lto-wrapper
Target: aarch64-apple-darwin24
Configured with: ../gcc-16.1.0/configure
--prefix=/Users/bjorn/.gcc/versions/16.1.0 --enable-languages=c,c++
--disable-nls --enable-checking=release --program-suffix=-16 --with-system-zlib
--build=aarch64-apple-darwin24
--with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 16.1.0 (GCC)

PR 117967 covers the driver-side version of this warning-class problem. This
report covers the separate cc1 diagnostic in gcc/toplev.cc.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.