declaration = declaration->next) {
if (declaration->storage_class == STORAGE_CLASS_ENUM_ENTRY)
continue;
+ if (declaration->implicit)
+ continue;
if (!first) {
print_indent();
static void print_for_statement(const for_statement_t *statement)
{
fputs("for (", out);
- if(statement->scope.declarations != NULL) {
+ declaration_t *decl = statement->scope.declarations;
+ while (decl != NULL && decl->implicit)
+ decl = decl->next;
+ if (decl != NULL) {
assert(statement->initialisation == NULL);
- print_declaration(statement->scope.declarations);
- if(statement->scope.declarations->next != NULL) {
+ print_declaration(decl);
+ if (decl->next != NULL) {
panic("multiple declarations in for statement not supported yet");
}
fputc(' ', out);
if(declaration->namespc != NAMESPACE_NORMAL &&
declaration->symbol == NULL)
continue;
+ if (declaration->implicit)
+ continue;
print_indent();
print_declaration(declaration);
unsigned int address_taken : 1;
unsigned int is_inline : 1;
unsigned int used : 1; /**< Set if the declaration is used. */
+ unsigned int implicit : 1;
type_t *type;
symbol_t *symbol;
source_position_t source_position;
declaration->type = type;
declaration->symbol = symbol;
declaration->source_position = *source_position;
+ declaration->implicit = true;
bool strict_prototypes_old = warning.strict_prototypes;
warning.strict_prototypes = false;