Am Dienstag, dem 19.11.2024 um 10:47 -0500 schrieb Marek Polacek:
> On Mon, Nov 18, 2024 at 07:10:35PM +0100, Martin Uecker wrote:
> > Am Montag, dem 18.11.2024 um 17:55 +0000 schrieb Qing Zhao:
> > > Hi,
> > > 
> > > I am working on extending “counted_by” attribute to pointers inside a 
> > > structure per our previous discussion. 
> > > 
> > > I need advice on the following question:
> > > 
> > > Should -fsantize=bounds support array reference that was referenced 
> > > through a pointer that has counted_by attribute? 
> 
> I don't see why it couldn't, perhaps as part of -fsanitize=bounds-strict.
> Someone has to implement it, though.

I think Qing was volunteering to do this.  My point was that
this would not necessarily be undefined behavior, but instead
could trap for possibly defined behavior.  I would not mind, but
I point out that in the past people insisted that the sanitizers
are only intended to screen for undefined behavior.

>  
> > I think the question is what -fsanitize=bounds is meant to be.
> > 
> > I am a bit frustrated about the sanitizer.  On the
> > one hand, it is not doing enough to get spatial memory
> > safety even where this would be easily possible, on the
> > other hand, is pedantic about things which are technically
> > UB but not problematic and then one is prevented from
> > using it
> > 
> > When used in default mode, where execution continues, it
> > also does not mix well with many warning, creates more code,
> > and pulls in a libary dependency (and the library also depends
> > on upstream choices / progress which seems a limitation for
> > extensions).
> > 
> > What IMHO would be ideal is a protection mode for spatial
> > memory safety that simply adds traps (which then requires
> > no library, has no issues with other warnings, and could
> > evolve independently from clang) 
> > 
> > So shouldn't we just add a -fboundscheck (which would 
> > be like -fsanitize=bounds -fsanitize-trap=bounds just with
> > more checking) and make it really good? I think many people
> > would be very happy about this.
> 
> That's a separate concern.  We already have the -fbounds-check option,
> currently only used in Fortran (and D?), so perhaps we could make
> that option a shorthand for -fsanitize=bounds -fsanitize-trap=bounds.

I think it could share large parts of the implementation, but the
main reason for having a separate option would be to do something
better than the sanitizer.  So it could not simply be a shorthand.

Martin



Reply via email to