================
@@ -729,9 +735,15 @@ static mlir::ParseResult parseCallCommon(mlir::OpAsmParser 
&parser,
   if (parser.parseRParen())
     return mlir::failure();
 
-  if (parser.parseOptionalKeyword("nothrow").succeeded())
+  llvm::SMLoc optionalNothrowLoc = parser.getCurrentLocation();
+  if (parser.parseOptionalKeyword("nothrow").succeeded()) {
+    if (hasExceptions)
+      return parser.emitError(
+          optionalNothrowLoc,
+          "should have either `exception` or `nothrow`, but not both");
----------------
bcardosolopes wrote:

This is expected (given those are are the LLVM equivalents of call/invoke - I 
agree the existing names are a bit convoluted), but my point is that if the 
call is not tagged prior to flatten, you don't know which one to lower to 
during flattening, because relying on the surrounding cir.try won't be enough. 

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

Reply via email to