From: Joseph Myers <joseph@codesourcery.com>
To: Martin Sebor <msebor@gmail.com>
Cc: Jason Merrill <jason@redhat.com>,
Gcc Patch List <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH] detect attribute mismatches in alias declarations (PR 81824)
Date: Mon, 01 Oct 2018 23:47:00 -0000 [thread overview]
Message-ID: <alpine.DEB.2.21.1810012252180.14173@digraph.polyomino.org.uk> (raw)
In-Reply-To: <42f8ec31-b967-08e7-ff7a-67a63a1a2a64@gmail.com>
On Mon, 1 Oct 2018, Martin Sebor wrote:
> Testing the patch with Glibc triggers thousands of warnings of
> both kinds. After reviewing a small subset it became apparent
Thousands of warnings suggests initially having the warning outside -Wall
(though one might hope to move it into -Wall at some point, depending on
how hard the warnings are to address and to what extent they appear at all
for other packages - most don't make heavy use of aliases like that - or
failing that, to enable it explicitly for glibc once all the warnings are
fixed, since this is certainly a useful warning for glibc showing issues
we want to fix) - it's not like the typical case of a new warning where
you can quickly and easily fix all the instances in glibc, for all
architectures, to keep it building with mainline GCC.
> attribute called copy. The attribute copies attributes from
> one declaration (or type) to another. The attribute doesn't
> resolve all the warnings but it helps.
(For actual use in glibc that use would of course need to be conditional
on a GCC version supporting the attribute.)
> The class of warnings I noticed that can't be so easily handled
> are due to inconsistencies between ifuncs and their resolvers.
> One way to solve it might be to have resolvers automatically
> "inherit" all the attributes of their targets (and enhance
> GCC to warn for violations). Another way might be to expect
> resolvers to be explicitly declared with attribute copy to copy
> the attributes of all the targets (and also warn for violations).
I'm not sure we should care about the attributes on IFUNC resolvers at
all; no normal code will see a declaration of the resolver and also call
the function, whereas lots of code calls functions under internal alias
names that currently lack the same attributes as the public declaration
has. It's also not obvious whether there might be more cases of
attributes for a function that are inapplicable to IFUNC resolvers than
just the attributes relating to a symbol rather than the function itself
which are hardcoded as excluded.
--
Joseph S. Myers
joseph@codesourcery.com
next prev parent reply other threads:[~2018-10-01 23:00 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-01 21:01 Martin Sebor
2018-10-01 23:47 ` Joseph Myers [this message]
2018-10-23 7:29 ` Martin Sebor
2018-10-23 22:55 ` Joseph Myers
2018-10-24 9:06 ` Martin Sebor
2018-10-24 12:50 ` Joseph Myers
2018-10-24 17:00 ` Martin Sebor
2018-10-24 19:00 ` Joseph Myers
2018-10-24 21:29 ` Martin Sebor
2018-10-31 16:35 ` Martin Sebor
2018-10-24 13:04 ` Joseph Myers
2018-10-24 18:33 ` Martin Sebor
2018-11-07 21:59 ` Jeff Law
2018-11-09 17:33 ` Martin Sebor
2018-11-12 18:29 ` Matthew Malcomson
2018-11-12 18:38 ` Martin Sebor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.DEB.2.21.1810012252180.14173@digraph.polyomino.org.uk \
--to=joseph@codesourcery.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jason@redhat.com \
--cc=msebor@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).