public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Fix -Wattribute-alias option
@ 2019-01-19 10:06 Bernd Edlinger
  2019-01-21 15:42 ` Arnd Bergmann
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Bernd Edlinger @ 2019-01-19 10:06 UTC (permalink / raw)
  To: gcc-patches, Jeff Law, Martin Sebor, Arnd Bergmann

[-- Attachment #1: Type: text/plain, Size: 827 bytes --]

Hi,

the command line option -Wattribute-alias (w/o the "=1") is currently broken,
and only -Wno-attribute-alias is still working, but what is worse, is that
the #pragma GCC diagnostic fails to recognize the string "-Wattribute-alias",
as it used to do in gcc-8, which breaks the linux warning suppression macro
because it relies on a _Pragma to work.

Fixed by declaring -Wattribute-alias as an alias to -Wattribute-alias=1
and the negated form as an alias to -Wattribute-alias=0.

Bootstrapped and reg-tested on x86_64-pc-linux-gnu.
Is it OK for trunk?

Additionally I looked into the linux 4.20 build, got a couple "-Wmissing-attributes"
which seem easy to fix (by adding the cold attribute) and quite a lot
"-Waddress-of-packed-member" warnings, which I don't know how to fix properly.


Thanks
Bernd.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch-fix-wattribute-alias.diff --]
[-- Type: text/x-patch; name="patch-fix-wattribute-alias.diff", Size: 2026 bytes --]

2019-01-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* common.opt (-Wattribute-alias): Remove "no-" from name.
	Make -Wattribute-alias command line option and
	#pragma GCC diagnostic ignore "-Wattribute-alias" work again.

testsuite:
2019-01-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* gcc.dg/Wattribute-alias.c: Add test for #pragma GCC diagnostic ignore
	"-Wattribute-alias".

Index: gcc/common.opt
===================================================================
--- gcc/common.opt	(revision 268084)
+++ gcc/common.opt	(working copy)
@@ -550,14 +550,14 @@ Wattributes
 Common Var(warn_attributes) Init(1) Warning
 Warn about inappropriate attribute usage.
 
+Wattribute-alias
+Common Alias(Wattribute_alias=, 1, 0) Warning
+Warn about type safety and similar errors and mismatches in attribute alias and related.
+
 Wattribute-alias=
 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
 Warn about type safety and similar errors and mismatches in attribute alias and related.
 
-Wno-attribute-alias
-Common Alias(Wattribute_alias=, 0, 0) Warning
-Disable -Wattribute-alias.
-
 Wcannot-profile
 Common Var(warn_cannot_profile) Init(1) Warning
 Warn when profiling instrumentation was requested, but could not be applied to
Index: gcc/testsuite/gcc.dg/Wattribute-alias.c
===================================================================
--- gcc/testsuite/gcc.dg/Wattribute-alias.c	(revision 268084)
+++ gcc/testsuite/gcc.dg/Wattribute-alias.c	(working copy)
@@ -14,6 +14,13 @@ ATTR (alias ("target_no_nothrow"), nothrow) void
 alias_nothrow (void);           /* { dg-warning ".alias_nothrow. specifies more restrictive attribute than its target .target_no_nothrow.: .nothrow." } */
 
 
+#pragma GCC diagnostic push "-Wattribute-alias"
+#pragma GCC diagnostic ignored "-Wattribute-alias"
+ATTR (alias ("target_no_nothrow"), nothrow) void
+alias_nothrow_ignored (void);
+#pragma GCC diagnostic pop "-Wattribute-alias"
+
+
 ATTR (pure) int
 alias_pure (void);
 

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

end of thread, other threads:[~2019-01-28  7:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-19 10:06 [PATCH] Fix -Wattribute-alias option Bernd Edlinger
2019-01-21 15:42 ` Arnd Bergmann
2019-01-21 15:55   ` Bernd Edlinger
2019-01-21 15:58     ` Arnd Bergmann
2019-01-21 16:32     ` Martin Sebor
2019-01-27 16:54 ` [PING] " Bernd Edlinger
2019-01-28  7:50 ` Jakub Jelinek

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).