aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgrischka <grischka>2009-05-05 20:30:13 +0200
committergrischka <grischka>2009-05-05 20:30:13 +0200
commit92204e881834efae9f60e6cadf71fbb5f7f1c738 (patch)
tree02aa7a9beb99ab4c40fe654a2b9b7d350c3ac9ef
parent9dc9cbf319f667abdb88fa63f508c860039704ed (diff)
downloadtinycc-92204e881834efae9f60e6cadf71fbb5f7f1c738.tar.gz
tinycc-92204e881834efae9f60e6cadf71fbb5f7f1c738.tar.bz2
move global variables to libtcc.c
-rw-r--r--libtcc.c111
-rw-r--r--tcc.h109
2 files changed, 111 insertions, 109 deletions
diff --git a/libtcc.c b/libtcc.c
index edc683e..383e5a5 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -20,6 +20,117 @@
#include "tcc.h"
+/* parser */
+static struct BufferedFile *file;
+static int ch, tok;
+static CValue tokc;
+static CString tokcstr; /* current parsed string, if any */
+/* additional informations about token */
+static int tok_flags;
+#define TOK_FLAG_BOL 0x0001 /* beginning of line before */
+#define TOK_FLAG_BOF 0x0002 /* beginning of file before */
+#define TOK_FLAG_ENDIF 0x0004 /* a endif was found matching starting #ifdef */
+#define TOK_FLAG_EOF 0x0008 /* end of file */
+
+static int *macro_ptr, *macro_ptr_allocated;
+static int *unget_saved_macro_ptr;
+static int unget_saved_buffer[TOK_MAX_SIZE + 1];
+static int unget_buffer_enabled;
+static int parse_flags;
+#define PARSE_FLAG_PREPROCESS 0x0001 /* activate preprocessing */
+#define PARSE_FLAG_TOK_NUM 0x0002 /* return numbers instead of TOK_PPNUM */
+#define PARSE_FLAG_LINEFEED 0x0004 /* line feed is returned as a
+ token. line feed is also
+ returned at eof */
+#define PARSE_FLAG_ASM_COMMENTS 0x0008 /* '#' can be used for line comment */
+#define PARSE_FLAG_SPACES 0x0010 /* next() returns space tokens (for -E) */
+
+static Section *text_section, *data_section, *bss_section; /* predefined sections */
+static Section *cur_text_section; /* current section where function code is
+ generated */
+#ifdef CONFIG_TCC_ASM
+static Section *last_text_section; /* to handle .previous asm directive */
+#endif
+/* bound check related sections */
+static Section *bounds_section; /* contains global data bound description */
+static Section *lbounds_section; /* contains local data bound description */
+/* symbol sections */
+static Section *symtab_section, *strtab_section;
+
+/* debug sections */
+static Section *stab_section, *stabstr_section;
+
+/* loc : local variable index
+ ind : output code index
+ rsym: return symbol
+ anon_sym: anonymous symbol index
+*/
+static int rsym, anon_sym, ind, loc;
+/* expression generation modifiers */
+static int const_wanted; /* true if constant wanted */
+static int nocode_wanted; /* true if no code generation wanted for an expression */
+static int global_expr; /* true if compound literals must be allocated
+ globally (used during initializers parsing */
+static CType func_vt; /* current function return type (used by return
+ instruction) */
+static int func_vc;
+static int last_line_num, last_ind, func_ind; /* debug last line number and pc */
+static int tok_ident;
+static TokenSym **table_ident;
+static TokenSym *hash_ident[TOK_HASH_SIZE];
+static char token_buf[STRING_MAX_SIZE + 1];
+static char *funcname;
+static Sym *global_stack, *local_stack;
+static Sym *define_stack;
+static Sym *global_label_stack, *local_label_stack;
+/* symbol allocator */
+#define SYM_POOL_NB (8192 / sizeof(Sym))
+static Sym *sym_free_first;
+static void **sym_pools;
+static int nb_sym_pools;
+
+static SValue vstack[VSTACK_SIZE], *vtop;
+/* some predefined types */
+static CType char_pointer_type, func_old_type, int_type;
+/* true if isid(c) || isnum(c) */
+static unsigned char isidnum_table[256-CH_EOF];
+
+/* display some information during compilation */
+static int verbose = 0;
+
+/* compile with debug symbol (and use them if error during execution) */
+static int do_debug = 0;
+
+/* compile with built-in memory and bounds checker */
+static int do_bounds_check = 0;
+
+/* display benchmark infos */
+#if !defined(LIBTCC)
+static int do_bench = 0;
+#endif
+static int total_lines;
+static int total_bytes;
+
+/* use GNU C extensions */
+static int gnu_ext = 1;
+
+/* use Tiny C extensions */
+static int tcc_ext = 1;
+
+/* max number of callers shown if error */
+#ifdef CONFIG_TCC_BACKTRACE
+static int num_callers = 6;
+static const char **rt_bound_error_msg;
+#endif
+
+/* XXX: get rid of this ASAP */
+static struct TCCState *tcc_state;
+
+/* give the path of the tcc libraries */
+static const char *tcc_lib_path = CONFIG_TCCDIR;
+
+
+
#ifdef TCC_TARGET_I386
#include "i386-gen.c"
#endif
diff --git a/tcc.h b/tcc.h
index e3041cb..c074505 100644
--- a/tcc.h
+++ b/tcc.h
@@ -338,115 +338,6 @@ typedef struct CachedInclude {
#define CACHED_INCLUDES_HASH_SIZE 512
-/* parser */
-static struct BufferedFile *file;
-static int ch, tok;
-static CValue tokc;
-static CString tokcstr; /* current parsed string, if any */
-/* additional informations about token */
-static int tok_flags;
-#define TOK_FLAG_BOL 0x0001 /* beginning of line before */
-#define TOK_FLAG_BOF 0x0002 /* beginning of file before */
-#define TOK_FLAG_ENDIF 0x0004 /* a endif was found matching starting #ifdef */
-#define TOK_FLAG_EOF 0x0008 /* end of file */
-
-static int *macro_ptr, *macro_ptr_allocated;
-static int *unget_saved_macro_ptr;
-static int unget_saved_buffer[TOK_MAX_SIZE + 1];
-static int unget_buffer_enabled;
-static int parse_flags;
-#define PARSE_FLAG_PREPROCESS 0x0001 /* activate preprocessing */
-#define PARSE_FLAG_TOK_NUM 0x0002 /* return numbers instead of TOK_PPNUM */
-#define PARSE_FLAG_LINEFEED 0x0004 /* line feed is returned as a
- token. line feed is also
- returned at eof */
-#define PARSE_FLAG_ASM_COMMENTS 0x0008 /* '#' can be used for line comment */
-#define PARSE_FLAG_SPACES 0x0010 /* next() returns space tokens (for -E) */
-
-static Section *text_section, *data_section, *bss_section; /* predefined sections */
-static Section *cur_text_section; /* current section where function code is
- generated */
-#ifdef CONFIG_TCC_ASM
-static Section *last_text_section; /* to handle .previous asm directive */
-#endif
-/* bound check related sections */
-static Section *bounds_section; /* contains global data bound description */
-static Section *lbounds_section; /* contains local data bound description */
-/* symbol sections */
-static Section *symtab_section, *strtab_section;
-
-/* debug sections */
-static Section *stab_section, *stabstr_section;
-
-/* loc : local variable index
- ind : output code index
- rsym: return symbol
- anon_sym: anonymous symbol index
-*/
-static int rsym, anon_sym, ind, loc;
-/* expression generation modifiers */
-static int const_wanted; /* true if constant wanted */
-static int nocode_wanted; /* true if no code generation wanted for an expression */
-static int global_expr; /* true if compound literals must be allocated
- globally (used during initializers parsing */
-static CType func_vt; /* current function return type (used by return
- instruction) */
-static int func_vc;
-static int last_line_num, last_ind, func_ind; /* debug last line number and pc */
-static int tok_ident;
-static TokenSym **table_ident;
-static TokenSym *hash_ident[TOK_HASH_SIZE];
-static char token_buf[STRING_MAX_SIZE + 1];
-static char *funcname;
-static Sym *global_stack, *local_stack;
-static Sym *define_stack;
-static Sym *global_label_stack, *local_label_stack;
-/* symbol allocator */
-#define SYM_POOL_NB (8192 / sizeof(Sym))
-static Sym *sym_free_first;
-static void **sym_pools;
-static int nb_sym_pools;
-
-static SValue vstack[VSTACK_SIZE], *vtop;
-/* some predefined types */
-static CType char_pointer_type, func_old_type, int_type;
-/* true if isid(c) || isnum(c) */
-static unsigned char isidnum_table[256-CH_EOF];
-
-/* display some information during compilation */
-static int verbose = 0;
-
-/* compile with debug symbol (and use them if error during execution) */
-static int do_debug = 0;
-
-/* compile with built-in memory and bounds checker */
-static int do_bounds_check = 0;
-
-/* display benchmark infos */
-#if !defined(LIBTCC)
-static int do_bench = 0;
-#endif
-static int total_lines;
-static int total_bytes;
-
-/* use GNU C extensions */
-static int gnu_ext = 1;
-
-/* use Tiny C extensions */
-static int tcc_ext = 1;
-
-/* max number of callers shown if error */
-#ifdef CONFIG_TCC_BACKTRACE
-static int num_callers = 6;
-static const char **rt_bound_error_msg;
-#endif
-
-/* XXX: get rid of this ASAP */
-static struct TCCState *tcc_state;
-
-/* give the path of the tcc libraries */
-static const char *tcc_lib_path = CONFIG_TCCDIR;
-
struct TCCState {
int output_type;