dblaikie added a comment.

In D77611#1968236 <https://reviews.llvm.org/D77611#1968236>, @nickdesaulniers 
wrote:

> In D77611#1968227 <https://reviews.llvm.org/D77611#1968227>, @dblaikie wrote:
>
> > Looks like GCC warns on everything but the last unused expression (the last 
> > one being the return statement) - only warning on that last one if it's 
> > ultimately unused by the statement expression function call, as it were (& 
> > is annotated warn_unused_result). Basically, it models it like a function 
> > in a way that Clang perhaps does not?
>
>
> For the case of warn_unused_result, it doesn't matter whether the unused call 
> is the first or last statement in the statement expression: 
> https://godbolt.org/z/DDgsVC (notice that trunk of LLVM warns now, just not 
> for the return value case from my added test).


Not sure I follow - if you swap the statements in the example there, the 
warning seems to go away. Compare (yours) https://godbolt.org/z/DDgsVC (warning 
with Clang and GCC) with https://godbolt.org/z/j65QXo (Clang and GCC do not 
warn).

> So GCC treats the return value from statement expressions differently from 
> return values from functions in this regard: https://godbolt.org/z/83wP7W

I don't think it does (based on above clarification/test cases). But your 
change would make Clang treat them differently from each other (& different 
from GCC), I think?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D77611



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

Reply via email to