Quellcode durchsuchen

[cpp] deal with null-to-scalar assignment when casting

Simon Krajewski vor 5 Tagen
Ursprung
Commit
4665f348e2
1 geänderte Dateien mit 2 neuen und 0 gelöschten Zeilen
  1. 2 0
      src/generators/cpp/cppRetyper.ml

+ 2 - 0
src/generators/cpp/cppRetyper.ml

@@ -1316,6 +1316,8 @@ let expression ctx request_type function_args function_type expression_tree forI
             | TCppProtocol p -> (retyper_ctx, CppCastProtocol (baseCpp, p), return_type)
             | TCppProtocol p -> (retyper_ctx, CppCastProtocol (baseCpp, p), return_type)
             | TCppDynamic when baseCpp.cpptype = TCppClass ->
             | TCppDynamic when baseCpp.cpptype = TCppClass ->
                 (retyper_ctx, CppCast (baseCpp, TCppDynamic), TCppDynamic)
                 (retyper_ctx, CppCast (baseCpp, TCppDynamic), TCppDynamic)
+			| TCppScalar _ when baseCpp.cpptype = TCppNull ->
+				(retyper_ctx, CppCast (baseCpp, return_type), return_type)
             | _ -> (retyper_ctx, baseCpp.cppexpr, baseCpp.cpptype (* use autocasting rules *))
             | _ -> (retyper_ctx, baseCpp.cppexpr, baseCpp.cpptype (* use autocasting rules *))
           )
           )
       | TCast (base, Some t) -> (
       | TCast (base, Some t) -> (