From 78fae7cbcb5d3e913ad234ad55be31ba06efa488 Mon Sep 17 00:00:00 2001 From: mappu Date: Thu, 6 Feb 2025 18:46:41 +1300 Subject: [PATCH] genbindings/cabi: zero values in CABI should use enum's underlying type --- cmd/genbindings/emitcabi.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cmd/genbindings/emitcabi.go b/cmd/genbindings/emitcabi.go index 905db302..7be7ccde 100644 --- a/cmd/genbindings/emitcabi.go +++ b/cmd/genbindings/emitcabi.go @@ -616,10 +616,13 @@ func getCabiZeroValue(p CppParameter) string { if p.Pointer { return getCppZeroValue(p) - } else if p.IsKnownEnum() { - return getCppZeroValue(p) + } else if ev, ok := KnownEnums[p.ParameterType]; ok { + // In CABI the zero value may be the underlying type of an enum instead + return "(" + ev.Enum.UnderlyingType.RenderTypeCabi() + ")(0)" + } else if p.IntType() { - return getCppZeroValue(p) + return getCppZeroValue(p) // default + } else if p.ParameterType == "bool" { return getCppZeroValue(p) } else if p.ParameterType == "void" {