Add automatic default value for primitive type fields

Primitive type fields are auto-initialized with '\0' when not specified.

Bug: 206718630
Bug: 206718630
Test: aidl --lang cpp -o out -h out \
  tests/android/aidl/tests/StructuredParcelable.aidl
Test: aidl --lang ndk -o out -h out \
  tests/android/aidl/tests/StructuredParcelable.aidl
Merged-In: I15cfe2a90c0c9adca1692d9a9c997901b90bbbb6
Change-Id: I15cfe2a90c0c9adca1692d9a9c997901b90bbbb6
(cherry picked from commit 94d3c0c503ad14f23ad1dce4bfd8020e031657a4)
Merged-In: I15cfe2a90c0c9adca1692d9a9c997901b90bbbb6
diff --git a/generate_ndk.cpp b/generate_ndk.cpp
index f0445f7..f382861 100644
--- a/generate_ndk.cpp
+++ b/generate_ndk.cpp
@@ -774,6 +774,9 @@
     out << NdkNameOf(types, variable->GetType(), StorageMode::STACK) << " " << variable->GetName();
     if (variable->GetDefaultValue()) {
       out << " = " << variable->ValueString(AidlConstantValueDecorator);
+    } else if (AidlTypenames::IsPrimitiveTypename(variable->GetType().GetName()) &&
+               !variable->GetType().IsArray()) {
+      out << " = {}";
     }
     out << ";\n";
   }