diff --git a/compiler/2014/C_CodeGen.jrag b/compiler/2014/C_CodeGen.jrag index 0bf1eec303a9d06595f7201446571e6d58ad375e..b6e643c33c08c800506087792b619abfba0c63d1 100644 --- a/compiler/2014/C_CodeGen.jrag +++ b/compiler/2014/C_CodeGen.jrag @@ -1284,7 +1284,7 @@ aspect C_Signature { eq TypeDecl.C_DeclTypeString() = "LABCOMM_TYPEDEF"; public void Decl.C_emitSignature(C_env env) { - if( (isReferenced() || isSampleDecl())){ + if( (true || isReferenced() || isSampleDecl())){ Signature signature = getSignature(); signature.C_emitSignature(env, !isSampleDecl()); C_emitFlatSignature(env); @@ -1480,10 +1480,14 @@ aspect C_Constructor { env.println("}"); } - public void Decl.C_emitConstructor(C_env env) { -// } -//XXX -// public void SampleDecl.C_emitConstructor(C_env env) { + public void TypeDecl.C_emitConstructor(C_env env) { + if (isReferenced()) { + env.println("labcomm"+env.verStr+"_set_local_index(&signature_" + + env.prefix + getName() + ");"); + } + } + + public void SampleDecl.C_emitConstructor(C_env env) { env.println("labcomm"+env.verStr+"_set_local_index(&signature_" + env.prefix + getName() + ");"); } diff --git a/lib/c/2014/test/generated_encoding.lc b/lib/c/2014/test/generated_encoding.lc index 4055562aaa48c83c9e92c7d1f008f13ab0468039..e2de7133de344c45f3154811613028bd14f78a05 100644 --- a/lib/c/2014/test/generated_encoding.lc +++ b/lib/c/2014/test/generated_encoding.lc @@ -1,3 +1,4 @@ +typedef void unused_t; typedef void v_t; sample v_t V; sample byte B;