================
@@ -514,192 +383,13 @@ void CIRGenFunction::exitCXXTryStmt(const CXXTryStmt &s, 
bool isFnTryBlock) {
     //   reaches the end of a handler of the function-try-block of a
     //   constructor or destructor.
 
-    // It is important that we only do this on fallthrough and not on
-    // return.  Note that it's illegal to put a return in a
-    // constructor function-try-block's catch handler (p14), so this
-    // really only applies to destructors.
-    if (doImplicitRethrow) {
-      cgm.errorNYI("exitCXXTryStmt: doImplicitRethrow");
-      return;
-    }
+    // TODO(cir): Handle implicit rethrow?
----------------
andykaylor wrote:

The reason it's not errorNYI here is that I have no means to even check for the 
condition. The old code was setting `doImplicitRethrow` based on the 
`isFnTryBlock` but the functions (`enter/exitCXXTryStmt`) were never being 
called with that parameter set, either in the incubator or in upstream CIR. 
Classic codegen calls them that way from `EmitConstructorBody` and 
`EmitDestructorBody`, but that's not what we're going to want to do in CIR.

Basically, we may never need to do this here, but we'll need to do something. 
This is just a reminder to do that "something" when we figure out what it 
should be. There are errorNYI calls in the ctor/dtor emit functions that will 
trigger when the condition is encountered.

https://github.com/llvm/llvm-project/pull/180857
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to