hokein added a comment.

sorry for the long delay, picking it up.



================
Comment at: clang/test/SemaCXX/constant-expression-cxx11.cpp:1798
+  constexpr int error() { // expected-error {{constexpr function never 
produces a constant expression}}
+    return foobar; // expected-error {{undeclared identifier}} expected-note 
2{{subexpression not valid in a constant expression}}
   }
----------------
sammccall wrote:
> an idea (not sure if feasible) - do we want to suppress "not valid in 
> constant expression" errors when the expressions contains errors?
> If so, may want a (different) FIXME here
the extra diagnostics don't exit any more in the trunk (I think it is because 
we support the error-dependent expression in const evaluator).


================
Comment at: clang/test/SemaCXX/lambda-expressions.cpp:522
       return undeclared_error; // expected-error {{use of undeclared 
identifier}}
-    return 0;
+    return 0; // expected-error {{cannot initialize return object of type 
'auto' with an rvalue of type 'int'}}
   };
----------------
sammccall wrote:
> this seems like a regression - what exactly is going on here?
> 
> in a perfect world I guess we'd e.g. leave the type undeduced from the first 
> return, rather than deduce it as undeduced-auto (at least for the purposes of 
> diagnostics).
this is an exiting issue in clang, and our tests don't cover that. 
https://reviews.llvm.org/D92211 will fix that.


================
Comment at: clang/test/SemaCXX/typo-correction-crash.cpp:19
 using T1 = decltype(L1());
-static_assert(is_same<T1, void>::value, "Return statement should be 
discarded");
+// FIXME: Suppress the 'undeclared identifier T1' diagnostic, the UsingDecl T1 
is discarded because of an invalid L1().
+static_assert(is_same<T1, void>::value, "Return statement should be 
discarded"); // expected-error {{use of undeclared identifier 'T1'}}
----------------
sammccall wrote:
> this is also a regression, though this code is pretty broken and is really 
> just asserting no crash.
this seems non-trivial to fix (we have a too strong invalidation for `decltype` 
on an error expression, the declarator is marked invalid), I'd defer the fix 
(since this is not a critical case, and the code is pretty broken). 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82284

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

Reply via email to