On Wed, Jul 25, 2018 at 4:07 AM Martin Sebor <mse...@gmail.com> wrote: > > The very large option argument enhancement committed last week > inadvertently introduced an assumption about the LP64 data model > that makes the -Wxxx-larger-than options have a different effect > at their default documented setting of PTRDIFF_MAX between ILP32 > and LP64. As a result, the options are treated as suppressed in > ILP32 while triggering the expected warnings for allocations or > sizes in excess of the limit in ILP64. > > To remove this I considered making it possible to use symbolic > constants like PTRDIFF_MAX as the option arguments so that > then defaults in the .opt files could be set to that. Sadly, > options in GCC are processed before the values of constants > like PTRDIFF_MAX for the target are known, and deferring > the handling of just the -Wxxx-larger-than= options until > the constants have been computed would be too involved to > make it worth the effort. > > To keep things simple I decided to have the code that handles > each of the affected options treat the HOST_WIDE_INT_MAX default > as a special request to substitute the value of PTRDIFF_MAX at > the time. > > The attached patch implements this.
I wonder if documenting a special value of -1 would be easier for users to use. Your patch doesn't come with adjustments to invoke.texi so I wonder how people could know of this special handling? Richard. > Tested on x86_64-linux with -m32/-m64. > > Martin