[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <p66tblbusj2uw4q35nytnangb7z5ziyrkenl67hjgfsatw3fdj@odgdtnzk7at6>
Date: Wed, 25 Jun 2025 20:55:02 -0400
From: Kent Overstreet <kent.overstreet@...ux.dev>
To: Marc Herbert <marc.herbert@...ux.intel.com>
Cc: Dan Williams <dan.j.williams@...el.com>,
Greg KH <gregkh@...uxfoundation.org>, Miguel Ojeda <ojeda@...nel.org>, Benjamin.Cheatham@....com,
Jonathan.Cameron@...wei.com, dakr@...nel.org, linux-acpi@...r.kernel.org,
linux-cxl@...r.kernel.org, linux-kernel@...r.kernel.org, rafael.j.wysocki@...el.com,
rafael@...nel.org, sudeep.holla@....com, Dan Carpenter <dan.carpenter@...aro.org>,
Kees Cook <kees@...nel.org>
Subject: Re: [PATCH] driver core: faux: fix Undefined Behavior in
faux_device_destroy()
On Wed, Jun 18, 2025 at 08:33:27PM -0700, Marc Herbert wrote:
> 2. Are C99 declarations acceptable.
To comment on this one, since I was linked - I'd say there's definite
pros and cons to C99 declarations to be aware of
pros:
- not separating the definition and the assignment is better style, and
does lead to a reduction in bugs
- discourages reusing the same variable for multiple purposes, better
and more readable code
the big con:
- they interact badly with gotos, you can get undefined behaviour from
using a variable that wasn't actually defined _and the compiler will
not warn you_
So, same issue as __cleanup.
There are no downsides to c99 style for loop declations that I've ever
seen, and we have seen definite cases where using those would have
prevented bugs.
But the issue with gotos is worth highlighting. Be careful when using
them in code that hasn't been converted to __cleanup.
Powered by blists - more mailing lists