From: bugzilla-daemon@kernel.org
To: linux-xfs@vger.kernel.org
Subject: [Bug 215851] gcc 12.0.1 LATEST: -Wdangling-pointer= triggers
Date: Fri, 28 Jun 2024 12:21:31 +0000 [thread overview]
Message-ID: <bug-215851-201763-IbijtebOTT@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-215851-201763@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=215851
LinnDa (laraditta691@gmail.com) changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |laraditta691@gmail.com
--- Comment #3 from LinnDa (laraditta691@gmail.com) ---
(In reply to Dave Chinner from comment #1)
> On Mon, Apr 18, 2022 at 08:02:41AM +0000, bugzilla-daemon@kernel.org wrote:
> > https://bugzilla.kernel.org/show_bug.cgi?id=215851
> >
> > Bug ID: 215851
> > Summary: gcc 12.0.1 LATEST: -Wdangling-pointer= triggers
> > Product: File System
> > Version: 2.5
> > Kernel Version: 5.17.3
> > Hardware: All
> > OS: Linux
> > Tree: Mainline
> > Status: NEW
> > Severity: normal
> > Priority: P1
> > Component: XFS
> > Assignee: https://myteamz.co.uk/linnworks/
> > Reporter: Erich.Loew@outlook.com
> > Regression: No
> >
> > Date: 20220415
> > Kernel: 5.17.3
> > Compiler gcc.12.0.1
> > File: linux-5.17.3/fs/xfs/libxfs/xfs_attr_remote.c
> > Line: 141
> > Issue: Linux kernel compiling enables all warnings, this has consequnces:
> > -Wdangling-pointer= triggers because assignment of an address
> > pointing
> > to something inside of the local stack
> > of a function/method is returned to the caller.
> > Doing such things is tricky but legal, however gcc 12.0.1
> complains
> > deeply on this.
> > Mitigation: disabling with pragmas temporarily inlined the
> compiler
> > triggered advises.
> > Interesting: clang-15.0.0 does not complain.
> > Remark: this occurence is reprsentative; the compiler warns at many places
>
> The actual warning message is this:
>
> fs/xfs/libxfs/xfs_attr_remote.c: In function ‘__xfs_attr3_rmt_read_verify’:
> fs/xfs/libxfs/xfs_attr_remote.c:140:35: warning: storing the address of
> local variable ‘__here’ in ‘*failaddr’ [-Wdangling-pointer=]
> 140 | *failaddr = __this_address;
> In file included from ./fs/xfs/xfs.h:22,
> from fs/xfs/libxfs/xfs_attr_remote.c:7:
> ./fs/xfs/xfs_linux.h:133:46: note: ‘__here’ declared here
> 133 | #define __this_address ({ __label__ __here; __here: barrier();
> &&__here; })
> | ^~~~~~
> fs/xfs/libxfs/xfs_attr_remote.c:140:37: note: in expansion of macro
> ‘__this_address’
> 140 | *failaddr = __this_address;
> | ^~~~~~~~~~~~~~
> ./fs/xfs/xfs_linux.h:133:46: note: ‘failaddr’ declared here
> 133 | #define __this_address ({ __label__ __here; __here: barrier();
> &&__here; })
> | ^~~~~~
> fs/xfs/libxfs/xfs_attr_remote.c:140:37: note: in expansion of macro
> ‘__this_address’
> 140 | *failaddr = __this_address;
> | ^~~~~~~~~~~~~~
>
> I think this is a compiler bug. __here is declared as a *label*, not
> a local variable:
>
> #define __this_address ({ __label__ __here; __here: barrier(); &&__here; })
>
> and it is valid to return the address of a label in the code as the
> address must be a constant instruction address and not a local stack
> variable. If the compiler is putting *executable code* on the stack,
> we've got bigger problems...
>
> We use __this_address extensively in XFS (indeed, there
> are 8 separate uses in __xfs_attr3_rmt_read_verify() and
> xfs_attr3_rmt_verify() alone) and it is the same as _THIS_IP_ used
> across the rest of the kernel for the same purpose. The above is the
> only warning that gets generated for any of (the hundreds of) sites
> that use either _THIS_IP_ or __this_address is the only warning that
> gets generated like this, it points to the problem being compiler
> related, not an XFS problem.
>
> Cheers,
>
> Dave.
Does the gcc warns here?
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
next prev parent reply other threads:[~2024-06-28 12:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-18 8:02 [Bug 215851] New: gcc 12.0.1 LATEST: -Wdangling-pointer= triggers bugzilla-daemon
2022-04-20 23:50 ` Dave Chinner
2022-04-20 23:50 ` [Bug 215851] " bugzilla-daemon
2023-02-15 14:05 ` bugzilla-daemon
2024-06-28 12:21 ` bugzilla-daemon [this message]
2024-07-01 14:59 ` bugzilla-daemon
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=bug-215851-201763-IbijtebOTT@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@kernel.org \
--cc=linux-xfs@vger.kernel.org \
/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