diff --git a/compiler/2014/C_CodeGen.jrag b/compiler/2014/C_CodeGen.jrag index b762e588c3278555ad9d52685816a8b1b02bb084..0b68620d45d45e8a25e37cc51f6949c46cfe062a 100644 --- a/compiler/2014/C_CodeGen.jrag +++ b/compiler/2014/C_CodeGen.jrag @@ -1038,7 +1038,7 @@ aspect C_Encoder { env.prefix + getName() + ", (labcomm2014_encoder_function)encode_" + env.prefix + getName() + - (!isVoid()?", v":", NULL")+");"); + (!isVoid()?", v":", labcomm_void_instance")+");"); env.unindent(); env.println("}"); } diff --git a/lib/c/2014/labcomm2014.c b/lib/c/2014/labcomm2014.c index 1cd953a789568e82d9ade761d88651754ae218f5..f599e78e81b6076823d75c4bad84899540842bbf 100644 --- a/lib/c/2014/labcomm2014.c +++ b/lib/c/2014/labcomm2014.c @@ -37,6 +37,12 @@ #include "labcomm2014_ioctl.h" #include "labcomm2014_dynamic_buffer_writer.h" +/* + * A non-null void sample instance + */ +void *labcomm_void_instance = &labcomm_void_instance; + + /* Unwrapping reader/writer functions */ #define UNWRAP_ac(rw, ac, ...) ac #define UNWRAP(func, ...) \ diff --git a/lib/c/2014/labcomm2014_private.h b/lib/c/2014/labcomm2014_private.h index 8f98fed43338241433d66347e83fa65b28af60fd..964299b146ed04dd69e27ab2c1cb683476a7917c 100644 --- a/lib/c/2014/labcomm2014_private.h +++ b/lib/c/2014/labcomm2014_private.h @@ -81,6 +81,11 @@ #define LABCOMM_CONSTRUCTOR __attribute__((constructor)) #endif +/* + * A non-null void sample instance + */ +extern void *labcomm_void_instance; + /* * Semi private dynamic memory declarations */