OBJECTS = sdcdb.o symtab.o simi.o $(PRJDIR)/src/SDCCset.o \
- break.o cmd.o $(PRJDIR)/src/SDCChasht.o
+ break.o cmd.o $(PRJDIR)/src/SDCChasht.o \
+ $(PRJDIR)/src/SDCCerr.o
SOURCES = $(patsubst %.o,%.c,$(OBJECTS))
TARGET = $(PRJDIR)/bin/sdcdb
char *simArgs[8];
int nsimArgs = 0;
+/* fake filename & lineno to make linker */
+char *filename=NULL;
+int lineno = 0;
+int fatalError = 0;
+
/* command table */
struct cmdtab
{
{ "q" , cmdQuit , NULL }
};
+/*-----------------------------------------------------------------*/
+/* gc_strdup - make a string duplicate garbage collector aware */
+/*-----------------------------------------------------------------*/
+char *gc_strdup(const char *s)
+{
+ char *ret;
+ ALLOC_ATOMIC(ret, strlen(s)+1);
+ strcpy(ret, s);
+ return ret;
+}
+
/*-----------------------------------------------------------------*/
/* alloccpy - allocate copy and return a new string */
/*-----------------------------------------------------------------*/
exit (1); \
}
#endif
-
+#ifndef ALLOC_ATOMIC
+#define ALLOC_ATOMIC(x,sz) if (!(x = GC_malloc_atomic(sz))) \
+ { \
+ fprintf(stderr,"sdcdb: out of memory\n"); \
+ exit (1); \
+ }
+#endif
/* generalpurpose stack related macros */
#define STACK_DCL(stack,type,size) \
typedef type t_##stack ; \