valac should not generate empty translation units
Compiling a vala file empty of definitions results in a C file with no definitions. We can e.g. see such a file in gee/assemblyinfo.vala of libgee. A C translation unit without any definitions is illegal according to a pedantic reading of the C standard, and both gcc (with -pedantic
: "ISO C forbids an empty translation unit") and cl.exe (with /Za
: C2183) have an error for it.
To solve this, it'd be easy to include a simple no-op typedef
in otherwise empty C translation units:
typedef int ValaNonEmptyTranslationUnit;
Since the translation unit is otherwise empty, it cannot clash with anything.