--* From postmaster%watson.vnet.ibm.com@yktvmv.watson.ibm.com Wed Jun 8 16:29:08 1994 --* Received: from yktvmv-ob.watson.ibm.com by asharp.watson.ibm.com (AIX 3.2/UCB 5.64/930311) --* id AA28891; Wed, 8 Jun 1994 16:29:08 -0400 --* Received: from watson.vnet.ibm.com by yktvmv.watson.ibm.com (IBM VM SMTP V2R3) --* with BSMTP id 6865; Wed, 08 Jun 94 16:29:08 EDT --* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0" --* id --* for asbugs@watson; Wed, 08 Jun 94 16:29:07 -0400 --* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0" --* id 9315; Wed, 8 Jun 1994 16:29:05 EDT --* Received: from leonardo.watson.ibm.com by yktvmv.watson.ibm.com --* (IBM VM SMTP V2R3) with TCP; Wed, 08 Jun 94 16:29:05 EDT --* Received: by leonardo.watson.ibm.com (AIX 3.2/UCB 5.64/920123) --* id AA16769; Wed, 8 Jun 1994 16:24:16 -0400 --* Date: Wed, 8 Jun 1994 16:24:16 -0400 --* From: edwards@leonardo.watson.ibm.com --* X-External-Networks: yes --* Message-Id: <9406082024.AA16769@leonardo.watson.ibm.com> --* To: asbugs@watson.ibm.com --* Subject: [8] multiple definitions in generated C code [hello_o.as][35.6 AIX rs3.2] --@ Fixed by: SSD Mon May 15 11:44:34 EDT 1995 --@ Tested by: none --@ Summary: C code generation no longer generates the duplicate definitions. --+ --- NOTE: there are multiple definitions of "FiClos G_W2UOF_hello__o" --+ --+ --+ /* --+ * C code generated by A# from file "hello_o.as". --+ */ --+ --+ #include "foam_c.h" --+ --+ --+ static FiProg C0_hello__o; --+ static void CF0_hello__o(); --+ typedef struct Fmt5 *PFmt5; --+ typedef struct Fmt6 *PFmt6; --+ --+ struct Fmt5 { --+ FiPtr X0_empty; --+ }; --+ --+ struct Fmt6 { --+ FiPtr X0_empty; --+ }; --+ extern FiClos G_W2UOF_hello__o; --+ static FiClos *pG_NQYQM_noOperation; --+ static FiClos *pG_XIPRL_runtime; --+ static FiClos *pG_BXNX_outport; --+ static FiWord *pG_AG4DA_outport__OutPort__307; --+ static FiClos *pG_OGNYK_string; --+ static FiClos *pG_4NZQI_lazyGetExport_BANG_; --+ static FiClos *pG_R3D1K_lazyForceImport; --+ extern FiWord fputs(); --+ extern void printNewLine(); --+ --+ --+ FiClos G_W2UOF_hello__o; --+ --+ --+ static void --+ CF0_hello__o(e1) --+ FiEnv e1; --+ { --+ FiWord T0, T1_OutPort, T2_print; --+ fiCCall0(void, (*pG_XIPRL_runtime)); --+ G_W2UOF_hello__o = (FiClos) (*pG_NQYQM_noOperation); --+ fiCCall0(void, (*pG_BXNX_outport)); --+ T1_OutPort = (FiWord) (*pG_AG4DA_outport__OutPort__307); --+ fiCCall0(void, (*pG_OGNYK_string)); --+ T2_print = fiCCall3(FiWord, (*pG_4NZQI_lazyGetExport_BANG_), --+ T1_OutPort, 828947258, 968858812); --+ T0 = fiCCall1(FiWord, (*pG_R3D1K_lazyForceImport), T2_print); --+ fputs("Hello world", T0); --+ printNewLine(T0); --+ return ; --+ } --+ --+ static struct _FiProg tmp0_hello__o = { --+ (FiFun) CF0_hello__o, --+ 0, --+ 0, --+ 0 --+ }; --+ --+ static struct _FiClos tmpClos0_hello__o = { --+ 0, --+ (FiProg) &tmp0_hello__o --+ }; --+ FiClos G_W2UOF_hello__o = &tmpClos0_hello__o; --+ FiClos G_W2UOF_hello__o; --+ --+ extern int --+ INIT__0_hello__o() --+ { --+ --+ extern int INIT__0_string(); --+ extern int INIT__0_outport(); --+ extern int INIT__0_runtime(); --+ static int initialized = 0; --+ if (initialized) --+ return 0; --+ else --+ initialized = 1; --+ C0_hello__o = &tmp0_hello__o; --+ fiExportGlobal("G_W2UOF_hello__o", G_W2UOF_hello__o); --+ fiImportGlobal("G_NQYQM_noOperation", pG_NQYQM_noOperation); --+ fiImportGlobal("G_XIPRL_runtime", pG_XIPRL_runtime); --+ fiImportGlobal("G_BXNX_outport", pG_BXNX_outport); --+ fiImportGlobal("G_AG4DA_outport__OutPort__3071", --+ pG_AG4DA_outport__OutPort__307); --+ fiImportGlobal("G_OGNYK_string", pG_OGNYK_string); --+ fiImportGlobal("G_4NZQI_lazyGetExport_BANG_", --+ pG_4NZQI_lazyGetExport_BANG_); --+ fiImportGlobal("G_R3D1K_lazyForceImport", pG_R3D1K_lazyForceImport); --+ if (fiFileInitializer) { --+ fiFileInitializer("string"); --+ fiFileInitializer("outport"); --+ fiFileInitializer("runtime"); --+ } --+ else { --+ INIT__0_string(); --+ INIT__0_outport(); --+ INIT__0_runtime(); --+ } --+ /* "---------------------------" */ --+ return 0; --+ } #include "aslib" import from String; print("Hello world")();