remove C99 'for' loop initial declarations
This commit is contained in:
parent
5010023428
commit
46145af4a1
1 changed files with 22 additions and 8 deletions
30
tccgen.c
30
tccgen.c
|
|
@ -165,7 +165,9 @@ static void decr_local_scope(void)
|
||||||
static void reset_local_scope(void)
|
static void reset_local_scope(void)
|
||||||
{
|
{
|
||||||
if (cleanup_info) {
|
if (cleanup_info) {
|
||||||
for (int i = 0; i < cleanup_idx; ++i) {
|
int i = 0;
|
||||||
|
|
||||||
|
for (; i < cleanup_idx; ++i) {
|
||||||
cleanup_info = cleanup_info_store[i];
|
cleanup_info = cleanup_info_store[i];
|
||||||
tcc_free(cleanup_info->syms);
|
tcc_free(cleanup_info->syms);
|
||||||
tcc_free(cleanup_info);
|
tcc_free(cleanup_info);
|
||||||
|
|
@ -185,7 +187,9 @@ static void reset_local_scope(void)
|
||||||
|
|
||||||
int is_scope_a_parent_of(ScopeTacker *parent, ScopeTacker *child)
|
int is_scope_a_parent_of(ScopeTacker *parent, ScopeTacker *child)
|
||||||
{
|
{
|
||||||
for (ScopeTacker *cur = parent->prev; cur; cur = cur->prev) {
|
ScopeTacker *cur = parent->prev;
|
||||||
|
|
||||||
|
for (; cur; cur = cur->prev) {
|
||||||
if (cur == child)
|
if (cur == child)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -4797,11 +4801,15 @@ static void parse_builtin_params(int nc, const char *args)
|
||||||
|
|
||||||
static void try_call_scope_cleanup(ScopeTacker *scope)
|
static void try_call_scope_cleanup(ScopeTacker *scope)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
if (!cleanup_info)
|
if (!cleanup_info)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (cleanup_info->scope != scope) {
|
if (cleanup_info->scope != scope) {
|
||||||
for (int i = 0; i < cleanup_idx; ++i) {
|
int i = 0;
|
||||||
|
|
||||||
|
for (; i < cleanup_idx; ++i) {
|
||||||
cleanup_info = cleanup_info_store[i];
|
cleanup_info = cleanup_info_store[i];
|
||||||
if (cleanup_info->scope == scope)
|
if (cleanup_info->scope == scope)
|
||||||
goto found;
|
goto found;
|
||||||
|
|
@ -4809,7 +4817,7 @@ static void try_call_scope_cleanup(ScopeTacker *scope)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
found:
|
found:
|
||||||
for (int i = cleanup_info->nb_cleanup - 1; i >= 0; --i) {
|
for (i = cleanup_info->nb_cleanup - 1; i >= 0; --i) {
|
||||||
Sym *fs = cleanup_info->syms[i].func;
|
Sym *fs = cleanup_info->syms[i].func;
|
||||||
Sym *vs = cleanup_info->syms[i].var;
|
Sym *vs = cleanup_info->syms[i].var;
|
||||||
|
|
||||||
|
|
@ -4827,9 +4835,11 @@ static void try_call_scope_cleanup(ScopeTacker *scope)
|
||||||
|
|
||||||
static void try_call_cleanup_goto(ScopeTacker *dest_scope)
|
static void try_call_cleanup_goto(ScopeTacker *dest_scope)
|
||||||
{
|
{
|
||||||
|
ScopeTacker *cur_scope_tracker;
|
||||||
|
|
||||||
if (!cleanup_info)
|
if (!cleanup_info)
|
||||||
return;
|
return;
|
||||||
for (ScopeTacker *cur_scope_tracker = scope_tracker;
|
for (cur_scope_tracker = scope_tracker;
|
||||||
cur_scope_tracker && cur_scope_tracker != dest_scope;
|
cur_scope_tracker && cur_scope_tracker != dest_scope;
|
||||||
cur_scope_tracker = cur_scope_tracker->prev) {
|
cur_scope_tracker = cur_scope_tracker->prev) {
|
||||||
try_call_scope_cleanup(cur_scope_tracker);
|
try_call_scope_cleanup(cur_scope_tracker);
|
||||||
|
|
@ -4838,9 +4848,11 @@ static void try_call_cleanup_goto(ScopeTacker *dest_scope)
|
||||||
|
|
||||||
static void try_call_all_cleanup(void)
|
static void try_call_all_cleanup(void)
|
||||||
{
|
{
|
||||||
|
ScopeTacker *cur_scope_tracker;
|
||||||
|
|
||||||
if (!cleanup_info)
|
if (!cleanup_info)
|
||||||
return;
|
return;
|
||||||
for (ScopeTacker *cur_scope_tracker = scope_tracker;
|
for (cur_scope_tracker = scope_tracker;
|
||||||
cur_scope_tracker;
|
cur_scope_tracker;
|
||||||
cur_scope_tracker = cur_scope_tracker->prev) {
|
cur_scope_tracker = cur_scope_tracker->prev) {
|
||||||
try_call_scope_cleanup(cur_scope_tracker);
|
try_call_scope_cleanup(cur_scope_tracker);
|
||||||
|
|
@ -6279,10 +6291,11 @@ static void block(int *bsym, int *csym, int is_expr)
|
||||||
|
|
||||||
if (cleanup_info) {
|
if (cleanup_info) {
|
||||||
int jmp = 0;
|
int jmp = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
jmp = gjmp(jmp);
|
jmp = gjmp(jmp);
|
||||||
|
|
||||||
for (int i = 0; i < last_cleanup_goto; ++i) {
|
for (i = 0; i < last_cleanup_goto; ++i) {
|
||||||
struct CleanupGoto *cur = cleanup_goto_info[i];
|
struct CleanupGoto *cur = cleanup_goto_info[i];
|
||||||
|
|
||||||
if (!cur->is_valide)
|
if (!cur->is_valide)
|
||||||
|
|
@ -6553,10 +6566,11 @@ static void block(int *bsym, int *csym, int is_expr)
|
||||||
s = label_find(b);
|
s = label_find(b);
|
||||||
if (s) {
|
if (s) {
|
||||||
int is_gen = 0;
|
int is_gen = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
if (s->r == LABEL_DEFINED)
|
if (s->r == LABEL_DEFINED)
|
||||||
tcc_error("duplicate label '%s'", get_tok_str(s->v, NULL));
|
tcc_error("duplicate label '%s'", get_tok_str(s->v, NULL));
|
||||||
for (int i = 0; i < last_cleanup_goto; ++i) {
|
for (i = 0; i < last_cleanup_goto; ++i) {
|
||||||
struct CleanupGoto *cur = cleanup_goto_info[i];
|
struct CleanupGoto *cur = cleanup_goto_info[i];
|
||||||
if (cur->s == s) {
|
if (cur->s == s) {
|
||||||
cur->is_valide = 0;
|
cur->is_valide = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue