From: Rico Tzschichholz Date: Sun, 19 Nov 2017 14:29:55 +0000 (+0100) Subject: codegen: Enforce name-length >= 3 for structs using GType X-Git-Tag: 0.39.1~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be9e795b66ed96e232abcd3ca628096c9a51c61c;p=thirdparty%2Fvala.git codegen: Enforce name-length >= 3 for structs using GType https://bugzilla.gnome.org/show_bug.cgi?id=764041 --- diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala index 9774570cd..654894812 100644 --- a/codegen/valaccodestructmodule.vala +++ b/codegen/valaccodestructmodule.vala @@ -158,6 +158,12 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule { push_context (new EmitContext (st)); push_line (st.source_reference); + if (get_ccode_has_type_id (st) && get_ccode_name (st).length < 3) { + st.error = true; + Report.error (st.source_reference, "Name `%s' is too short for struct using GType".printf (get_ccode_name (st))); + return; + } + var old_instance_finalize_context = instance_finalize_context; instance_finalize_context = new EmitContext (); diff --git a/tests/Makefile.am b/tests/Makefile.am index d8b7c8ff3..682f33d16 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -154,6 +154,7 @@ TESTS = \ structs/bug690380.vala \ structs/bug694140.vala \ structs/bug749952.vala \ + structs/bug764041.test \ structs/bug775761.vala \ structs/bug777194.vala \ delegates/casting.vala \ diff --git a/tests/structs/bug764041.test b/tests/structs/bug764041.test new file mode 100644 index 000000000..1911cda0c --- /dev/null +++ b/tests/structs/bug764041.test @@ -0,0 +1,10 @@ +Invalid Code + +struct N { + public int i; +} + +void main() { + N n = { 42 }; + Value v = n; +}