public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
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.

  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