================ @@ -739,10 +742,16 @@ class YAMLConverter { PI.setLifetimebound(P.Lifetimebound); PI.setType(std::string(P.Type)); PI.setRetainCountConvention(P.RetainCountConvention); - if (OutInfo.Params.size() <= P.Position) + if (static_cast<int>(OutInfo.Params.size()) <= P.Position) OutInfo.Params.resize(P.Position + 1); - OutInfo.Params[P.Position] |= PI; + if (P.Position < -1) + emitError("parameter position smaller than -1 is not valid"); + else if (P.Position == -1) + thisOrSelf = PI; + else + OutInfo.Params[P.Position] |= PI; ---------------- compnerd wrote:
I wonder if we should rewrite this to make it easier to introduce additional implicit parameters in the future: ```suggestion if (P.Position == -1) thisOrSelf = PI; else if (P.Position > 0) OutInfo.Params[P.Position] |= PI; else emitError("invalid parameter position " + itostr(P.Position)); ``` https://github.com/llvm/llvm-project/pull/115021 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits