On Tue, 6 Dec 2022, Richard Biener via Gcc wrote:

> Implementation-wise one could do a similar trick as we have for
> global_options vs. global_options_set - add a global_options_error copy (ick!)
> (and global_options_error_set!?) and have the logic that decides whether
> a warning is an error pick that set.  Of course it's the actual pass that 
> looks
> at flag_xyz which holds the magic number so that pass would need to be able
> to see whether it needs to look at both numbers.

I'm hoping to come up with a reasonably elegant way to implement this.

> Btw, does '-Werror=array-bounds=2' imply that =1 kinds are diagnosed as
> warning?

No, =1 kinds are diagnosed as error as well.

> Does it enable -Warray-bounds=2?

Yes, -Werror=array-bounds=2 is simply decomposed into -Warray-bounds=2
-Werror=array-bounds= (since PR 48088 was fixed).

> I think the DWIM behavior isn't all that clear and probably depends on the
> actual option we want to make it work.

Yeah, I guess there will be differences of opinion here, and I'm interested
to reach community consensus. Let's say I'm mostly interested in supporting

  -Warray-bounds=2 -Werror=array-bounds=1

(errors for most certain OOB accesses, warnings otherwise).

Alexander

Reply via email to