Ignore:
Timestamp:
May 29, 2018, 2:02:47 PM (6 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, with_gc
Children:
96812c0
Parents:
d807ca28
git-author:
Rob Schluntz <rschlunt@…> (05/29/18 12:29:01)
git-committer:
Rob Schluntz <rschlunt@…> (05/29/18 14:02:47)
Message:

Push deleted decls through the system

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    rd807ca28 r3ed994e  
    10671067                        SemanticError( this, "invalid function specifier for " );
    10681068                } // if
    1069                 return buildDecl( type, name ? *name : string( "" ), storageClasses, maybeBuild< Expression >( bitfieldWidth ), funcSpecs, linkage, asmName, maybeBuild< Initializer >(initializer), attributes )->set_extension( extension );
     1069                bool isDelete = initializer && initializer->get_isDelete();
     1070                Declaration * decl = buildDecl( type, name ? *name : string( "" ), storageClasses, maybeBuild< Expression >( bitfieldWidth ), funcSpecs, linkage, asmName, isDelete ? nullptr : maybeBuild< Initializer >(initializer), attributes )->set_extension( extension );
     1071                if ( isDelete ) {
     1072                        DeclarationWithType * dwt = strict_dynamic_cast<DeclarationWithType *>( decl );
     1073                        dwt->isDeleted = true;
     1074                }
     1075                return decl;
    10701076        } // if
    10711077
Note: See TracChangeset for help on using the changeset viewer.