sberg added a comment.

I'm surprised that

  $ cat test.c
  struct S {
      int m1;
      int m2[1];
  };
  void f(struct S * s) {
      s->m2[1] = 0;
  }
  
  $ clang -fsyntax-only -fstrict-flex-arrays=1 test.c
  test.c:6:5: warning: array index 1 is past the end of the array (which 
contains 1 element) [-Warray-bounds]
      s->m2[1] = 0;
      ^     ~
  test.c:3:5: note: array 'm2' declared here
      int m2[1];
      ^
  1 warning generated.

causes a warning?  I would have expected it to be suppressed in this case, as 
with the lax `-fstrict-flex-arrays=0` default, and only to hit with the 
stricter `-fstrict-flex-arrays=2`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126864/new/

https://reviews.llvm.org/D126864

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to