aaron.ballman added inline comments.

================
Comment at: clang/test/Sema/vla.c:134
+  // expected-warning@+1{{variable length array folded to constant array as an 
extension}}
+  char (*a9)[] = (char[2][ksize]) {{1,2,3,4},{4,3,2,1}};
+
----------------
efriedma wrote:
> aaron.ballman wrote:
> > Doesn't this violate the constraints in C17 6.5.2.5p1, "The type name shall 
> > specify a complete object type or an array of unknown size, but not a 
> > variable-length array type"?
> Yes, this is a constraint violation.  This patch downgrades the error to a 
> warning, for compatibility with older versions of clang.
It was an error in older versions of Clang, so downgrading it to a warning 
can't make code *more* compatible with older versions. This also makes it 
harder to port C code to other compilers because Clang happily accepts code 
that the C standard says should be rejected.

I'm not strongly opposed to the change, but I also don't like ignoring 
constraint violations in the standard as that comes awfully close to what 
`-fpermissive` does (and at least with that awful flag you have to opt *into* 
the less strictly conforming behavior instead of getting it by default as with 
extensions).

I'm curious if @rsmith has thoughts here?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D98363

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

Reply via email to