Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/FixFunction.cc

    rd53772d r954ef5b  
    3030                // can't delete function type because it may contain assertions, so transfer ownership to new object
    3131                ObjectDecl *pointer = new ObjectDecl( functionDecl->name, functionDecl->get_storageClasses(), functionDecl->linkage, nullptr, new PointerType( Type::Qualifiers(), functionDecl->type ), nullptr, functionDecl->attributes );
    32                 pointer->location = functionDecl->location;
    3332                functionDecl->attributes.clear();
    3433                functionDecl->type = nullptr;
     
    3736        }
    3837
    39         // xxx - this passes on void[], e.g.
    40         //   void foo(void [10]);
    41         // does not cause an error
    42 
    4338        Type * FixFunction::postmutate(ArrayType *arrayType) {
    4439                // need to recursively mutate the base type in order for multi-dimensional arrays to work.
    4540                PointerType *pointerType = new PointerType( arrayType->get_qualifiers(), arrayType->base, arrayType->dimension, arrayType->isVarLen, arrayType->isStatic );
    46                 pointerType->location = arrayType->location;
    4741                arrayType->base = nullptr;
    4842                arrayType->dimension = nullptr;
     
    6862        void FixFunction::premutate(ZeroType *) { visit_children = false; }
    6963        void FixFunction::premutate(OneType *) { visit_children = false; }
    70 
    71         bool fixFunction( DeclarationWithType *& dwt ) {
    72                 PassVisitor<FixFunction> fixer;
    73                 dwt = dwt->acceptMutator( fixer );
    74                 return fixer.pass.isVoid;
    75         }
    7664} // namespace SymTab
    7765
Note: See TracChangeset for help on using the changeset viewer.