gnu::warning(3attr) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | VERSIONS | STANDARDS | HISTORY | CAVEATS | EXAMPLES | COLOPHON

gnu::warning(3attr)                                   gnu::warning(3attr)

NAME         top

       gnu::warning, gnu::error - diagnose function calls not removed by
       optimizations

SYNOPSIS         top

       [[gnu::warning(msg)]]
       [[gnu::error(msg)]]

DESCRIPTION         top

       This attribute can be applied to a function.  If the function call
       is not removed by optimizations, a diagnostic is emitted.  The
       diagnostic contains the message msg and the location of the call
       in the source code.

       [[gnu::error()]] terminates the compilation after emitting the
       diagnostic.

VERSIONS         top

       __attribute__((warning(msg)))
       __attribute__((error(msg)))

STANDARDS         top

       GNU.

HISTORY         top

       gcc 4.3, g++ 4.3, clang 14, clang++ 14.

CAVEATS         top

       This diagnostic is emitted by the compiler, so it doesn't take
       into account linker optimizations.

EXAMPLES         top

       #include <stdlib.h>

       [[gnu::warning("foo")]] void dontcall(void);

       int
       main(void)
       {
            dontcall();  // Warning.

            if (0)
                 dontcall();  // No warning.

            exit(EXIT_SUCCESS);
       }

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.18.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2026-05-24.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       man-pages@man7.org

Linux man-pages 6.18            2025-11-11            gnu::warning(3attr)