erichkeane added a comment.

In D119609#3424434 <https://reviews.llvm.org/D119609#3424434>, @junaire wrote:

> Hi @aaron.ballman, do you think it's time to consider reviewing this?
>
> I don't why there's no response or progress in GCC, but I think I can submit 
> a patch for them if they think this issue is low prior.

I think I'm ok with rejecting both cases now, and doing this review.  Though 
I'm still concerned with the 'skip-until' losing some diagnostics, so please 
add another test for that as I requested before.



================
Comment at: clang/test/Sema/err-expr-stmt-in-default-arg.cpp:3
+
+void foo() {
+  void fn(int i, int = ({ 1; })); // expected-error {{expression statement not 
permitted in default argument}}
----------------
Do we also prohibit in a template argument?


================
Comment at: clang/test/Sema/err-expr-stmt-in-default-arg.cpp:19
+  return bar(l);
+}
----------------
erichkeane wrote:
> junaire wrote:
> > erichkeane wrote:
> > > For completeness, I'd like to see an 
> > > in-function-defined-struct-member-function test here as well.
> > > 
> > > As for the above question about the recovery, something like:
> > > 
> > > `void fn(int i, int j = ({ {},{},{,} }), int k = "");` I think checks all 
> > > the issues I can think of.  We want to make sure that 'k' still diagnoses 
> > > its error correctly (and that we have just skipped all of the expression 
> > > statement stuff).
> > Note that clang is already rejected the code: 
> > https://godbolt.org/z/57c4qaaPo
> > 
> I more mean an example like this one:
> https://godbolt.org/z/nf7W1zznh
> 
> I see that we already reject it, however you are doing a 'skip until' here, 
> and I want to make sure that the error on 'k' diagnoses correctly still. 
> 
> With your change, I would expect the 1st two errors there to go away and be 
> replaced by your new error.  BUT the 'k' type would still be there.
> 
> The point of this is to make sure that your error doesn't leave the parser in 
> a 'bad' state.
I don't see the test I requested here, I'd still like to see that to make sure 
the parser still diagnoses' k'.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D119609

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

Reply via email to