-fno-type-redefinition-check
don't catch redefinition for local vars. With this option on
tcc accepts the following code:
int main()
{
int a = 0;
long a = 0;
}
But if you shure there is no problem with your local variables,
then a compilation speed can be improved if you have a lots of
the local variables (50000+)
This commit is contained in:
12
tccgen.c
12
tccgen.c
@ -166,11 +166,13 @@ ST_INLN void sym_free(Sym *sym)
|
||||
ST_FUNC Sym *sym_push2(Sym **ps, int v, int t, long c)
|
||||
{
|
||||
Sym *s;
|
||||
if (ps == &local_stack) {
|
||||
for (s = *ps; s && s != scope_stack_bottom; s = s->prev)
|
||||
if (!(v & SYM_FIELD) && (v & ~SYM_STRUCT) < SYM_FIRST_ANOM && s->v == v)
|
||||
tcc_error("incompatible types for redefinition of '%s'",
|
||||
get_tok_str(v, NULL));
|
||||
if (!tcc_state->no_type_redef_check) {
|
||||
if (ps == &local_stack) {
|
||||
for (s = *ps; s && s != scope_stack_bottom; s = s->prev)
|
||||
if (!(v & SYM_FIELD) && (v & ~SYM_STRUCT) < SYM_FIRST_ANOM && s->v == v)
|
||||
tcc_error("incompatible types for redefinition of '%s'",
|
||||
get_tok_str(v, NULL));
|
||||
}
|
||||
}
|
||||
s = sym_malloc();
|
||||
s->asm_label = 0;
|
||||
|
||||
Reference in New Issue
Block a user