erichkeane added inline comments.

================
Comment at: clang/lib/CodeGen/CGDecl.cpp:346
+    else if (!D.getFlexibleArrayInitChars(getContext()).isZero())
+      CGM.ErrorUnsupported(D.getInit(), "flexible array init");
     else if (HaveInsertPoint()) {
----------------
Can you write a test for this with a 'fixme'?  I don't see a reason why we 
shouldn't support this eventually.


================
Comment at: clang/lib/CodeGen/CodeGenModule.cpp:4617
       if (getLangOpts().CPlusPlus) {
+        if (!InitDecl->getFlexibleArrayInitChars(getContext()).isZero())
+          ErrorUnsupported(D, "flexible array initializer");
----------------
Same comment here.


================
Comment at: clang/test/SemaCXX/constant-expression-cxx11.cpp:2388
+  // evaluation. Make sure we emit a sane error message, for now.
+  constexpr A c = {1, 2, 3}; // expected-warning {{flexible array 
initialization is a GNU extension}}
+  static_assert(c.arr[0] == 1, ""); // expected-error {{constant expression}} 
expected-note {{array member without known bound}}
----------------
I would expect this to be an error, not the static-assert.  The constexpr 
variable means 'initializable as a constant expression'.  

I'm guessing the problem is ACTUALLY that we support constexpr init, but not 
the operator[].  I think I'd like to have us have the initialization fail here, 
since it isn't otherwise usable.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D123649

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

Reply via email to