public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/105377] New: Likely a misleading clang warning -Wc++20-attribute-extensions
@ 2022-04-25 13:46 marxin at gcc dot gnu.org
  2022-04-25 13:55 ` [Bug c++/105377] " jakub at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: marxin at gcc dot gnu.org @ 2022-04-25 13:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105377

            Bug ID: 105377
           Summary: Likely a misleading clang warning
                    -Wc++20-attribute-extensions
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: mpolacek at gcc dot gnu.org, redi at gcc dot gnu.org
  Target Milestone: ---

I noticed the following warning:

clang++  -I/home/marxin/Programming/gcc/libcpp -I.
-I/home/marxin/Programming/gcc/libcpp/../include
-I/home/marxin/Programming/gcc/libcpp/include  -g -O2     -W -Wall
-Wno-narrowing -Wwrite-strings -Wmissing-format-attribute -pedantic
-Wno-long-long  -fno-exceptions -fno-rtti -I/home/marxin/Programming/gcc/libcpp
-I. -I/home/marxin/Programming/gcc/libcpp/../include
-I/home/marxin/Programming/gcc/libcpp/include  -fPIC -fcf-protection -c -o
lex.o -MT lex.o -MMD -MP -MF .deps/lex.Tpo
/home/marxin/Programming/gcc/libcpp/lex.cc -std=c++17
/home/marxin/Programming/gcc/libcpp/lex.cc:1289:7: warning: use of the 'likely'
attribute is a C++20 extension [-Wc++20-attribute-extensions]
      ATTR_LIKELY case kind::NONE:
      ^~~~~~~~~~~
/home/marxin/Programming/gcc/libcpp/system.h:427:25: note: expanded from macro
'ATTR_LIKELY'
#  define ATTR_LIKELY [[likely]]
                      ~~^~~~~~~~

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/105377] Likely a misleading clang warning -Wc++20-attribute-extensions
  2022-04-25 13:46 [Bug c++/105377] New: Likely a misleading clang warning -Wc++20-attribute-extensions marxin at gcc dot gnu.org
@ 2022-04-25 13:55 ` jakub at gcc dot gnu.org
  2022-04-25 13:58 ` mpolacek at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-04-25 13:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105377

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Yes, it is an extension, but if the compiler doesn't recognize it, it shouldn't
do anything with it.  So it is just fine to use it...
Especially when gcc only uses it when the compiler tells it it supports it...
#ifdef __has_cpp_attribute
# if __has_cpp_attribute(likely)
#  define ATTR_LIKELY [[likely]]
# elif __has_cpp_attribute(__likely__)
#  define ATTR_LIKELY [[__likely__]]
# else
#  define ATTR_LIKELY
# endif
#else
# define ATTR_LIKELY
#endif

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/105377] Likely a misleading clang warning -Wc++20-attribute-extensions
  2022-04-25 13:46 [Bug c++/105377] New: Likely a misleading clang warning -Wc++20-attribute-extensions marxin at gcc dot gnu.org
  2022-04-25 13:55 ` [Bug c++/105377] " jakub at gcc dot gnu.org
@ 2022-04-25 13:58 ` mpolacek at gcc dot gnu.org
  2022-04-25 14:00 ` egallager at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2022-04-25 13:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105377

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Yes, I'd prefer to keep it the way it is.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/105377] Likely a misleading clang warning -Wc++20-attribute-extensions
  2022-04-25 13:46 [Bug c++/105377] New: Likely a misleading clang warning -Wc++20-attribute-extensions marxin at gcc dot gnu.org
  2022-04-25 13:55 ` [Bug c++/105377] " jakub at gcc dot gnu.org
  2022-04-25 13:58 ` mpolacek at gcc dot gnu.org
@ 2022-04-25 14:00 ` egallager at gcc dot gnu.org
  2022-04-25 14:44 ` redi at gcc dot gnu.org
  2022-04-25 20:25 ` marxin at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: egallager at gcc dot gnu.org @ 2022-04-25 14:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105377

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |egallager at gcc dot gnu.org

--- Comment #3 from Eric Gallager <egallager at gcc dot gnu.org> ---
it's probably due to the combination of -pedantic and -std=c++17; what happens
if you use -std=gnu++17 instead for the standard?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/105377] Likely a misleading clang warning -Wc++20-attribute-extensions
  2022-04-25 13:46 [Bug c++/105377] New: Likely a misleading clang warning -Wc++20-attribute-extensions marxin at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2022-04-25 14:00 ` egallager at gcc dot gnu.org
@ 2022-04-25 14:44 ` redi at gcc dot gnu.org
  2022-04-25 20:25 ` marxin at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: redi at gcc dot gnu.org @ 2022-04-25 14:44 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105377

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
But we don['t want to use gnu++17 because we want the compiler to be built
using portable ISO C++17. An unrecognized attribute is a portable ISO C++17
construct, it just doesn't do anything (except maybe give a warning).

We could add:

#ifdef __clang__
#pragma clang diagnostic ignored "-Wc++20-attribute-extensions"
#endif

To disable this warning, since we know we're already guarding the attribute
with __has_cpp_attribute.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/105377] Likely a misleading clang warning -Wc++20-attribute-extensions
  2022-04-25 13:46 [Bug c++/105377] New: Likely a misleading clang warning -Wc++20-attribute-extensions marxin at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2022-04-25 14:44 ` redi at gcc dot gnu.org
@ 2022-04-25 20:25 ` marxin at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: marxin at gcc dot gnu.org @ 2022-04-25 20:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105377

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #1)
> Yes, it is an extension, but if the compiler doesn't recognize it, it
> shouldn't do anything with it.  So it is just fine to use it...

I agree with that and I'm going to silente the warning in
contrib/filter-clang-warnings.py.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-04-25 20:25 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-25 13:46 [Bug c++/105377] New: Likely a misleading clang warning -Wc++20-attribute-extensions marxin at gcc dot gnu.org
2022-04-25 13:55 ` [Bug c++/105377] " jakub at gcc dot gnu.org
2022-04-25 13:58 ` mpolacek at gcc dot gnu.org
2022-04-25 14:00 ` egallager at gcc dot gnu.org
2022-04-25 14:44 ` redi at gcc dot gnu.org
2022-04-25 20:25 ` marxin at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).