Quuxplusone accepted this revision.
Quuxplusone added a comment.
This revision is now accepted and ready to land.

LGTM FWIW. You might want to wait for someone more authoritative to take a 
look; but it's also only adding test coverage, so it seems pretty 
uncontroversial, I would think.



================
Comment at: clang/test/CodeGenCXX/nrvo.cpp:165
   if (B)
-    return y;
-  return x;
+    return y; // NRVO is impossible
+  return x;   // NRVO is impossible
----------------
Technically, because `B` is a constant throughout this function, we probably 
//could// do NRVO here by hoisting the condition as if by
```
X x;
if (B) { X y; return y; } // NRVO is possible here
X y; return x; // NRVO is impossible
```
Whether we //should// is another question. :) Also, changing `bool B` to `const 
bool& B` would defeat my idea.


================
Comment at: clang/test/CodeGenCXX/nrvo.cpp:1149
+//
+void test16() {
+  X x;
----------------
It would be helpful to comment these tests also with their p2025 example 
numbers, e.g.
```
void test16() { // http://wg21.link/p2025r2#ex-9
```
It took me a while to realize that the numbers here don't actually match up to 
the examples' numbers in the paper.


================
Comment at: clang/test/CodeGenCXX/nrvo.cpp:1537
+  }
+  return x; // FIXME: NRVO could happen if B == false, but doesn't
+}
----------------
Nit: `s/if/when/`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D119927

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

Reply via email to