diff --git a/src/qptr/lower.rs b/src/qptr/lower.rs index abbcecc..2eec345 100644 --- a/src/qptr/lower.rs +++ b/src/qptr/lower.rs @@ -126,6 +126,15 @@ impl<'a> LowerFromSpvPtrs<'a> { global_var_decl.addr_space = AddrSpace::Handles; } } + + // HACK(eddyb) see also below, but this should at least prevent + // errors if the global variable has a valid initializer already. + if let DeclDef::Present(def) = &global_var_decl.def { + if def.initializer.is_some() && shape_result.is_ok() { + shape_result = Ok(shapes::GlobalVarShape::TypedInterface(pointee_type)); + } + } + match shape_result { Ok(shape) => { global_var_decl.shape = Some(shape);