Changeset 90152a4 for src/SymTab/FixFunction.cc
- Timestamp:
- Aug 27, 2018, 4:40:34 PM (7 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- b7c89aa
- Parents:
- f9feab8 (diff), 305581d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/FixFunction.cc
rf9feab8 r90152a4 30 30 // can't delete function type because it may contain assertions, so transfer ownership to new object 31 31 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; 32 33 functionDecl->attributes.clear(); 33 34 functionDecl->type = nullptr; … … 36 37 } 37 38 39 // xxx - this passes on void[], e.g. 40 // void foo(void [10]); 41 // does not cause an error 42 38 43 Type * FixFunction::postmutate(ArrayType *arrayType) { 39 44 // need to recursively mutate the base type in order for multi-dimensional arrays to work. 40 45 PointerType *pointerType = new PointerType( arrayType->get_qualifiers(), arrayType->base, arrayType->dimension, arrayType->isVarLen, arrayType->isStatic ); 46 pointerType->location = arrayType->location; 41 47 arrayType->base = nullptr; 42 48 arrayType->dimension = nullptr; … … 62 68 void FixFunction::premutate(ZeroType *) { visit_children = false; } 63 69 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 } 64 76 } // namespace SymTab 65 77
Note:
See TracChangeset
for help on using the changeset viewer.