Ignore:
Timestamp:
Aug 4, 2021, 1:24:51 PM (3 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
5541ea3d
Parents:
1e567ab (diff), da602aec (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.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ControlStruct/ExceptDecl.cc

    r1e567ab rdf5b2c8  
    1010// Created On       : Tue Jul 20 04:10:50 2021
    1111// Last Modified By : Henry Xue
    12 // Last Modified On : Mon Jul 26 12:55:28 2021
    13 // Update Count     : 3
     12// Last Modified On : Tue Aug 03 10:42:26 2021
     13// Update Count     : 4
    1414//
    1515
     
    278278        cloneAll( forallClause, structDecl->parameters );
    279279        return structDecl;
     280}
     281
     282ObjectDecl * ehmTypeIdExtern(
     283        const std::string & exceptionName,
     284        const std::list< Expression *> & parameters
     285) {
     286        StructInstType * typeIdType = new StructInstType(
     287                Type::Const,
     288                Virtual::typeIdType( exceptionName )
     289        );
     290        cloneAll( parameters, typeIdType->parameters );
     291        return new ObjectDecl(
     292                Virtual::typeIdName( exceptionName ),
     293                Type::Extern,
     294                LinkageSpec::Cforall,
     295                nullptr,
     296                typeIdType,
     297                nullptr,
     298                { new Attribute( "cfa_linkonce" ) }
     299        );
    280300}
    281301
     
    421441
    422442                if ( objectDecl->get_storageClasses().is_extern ) { // if extern
     443                        if ( !parameters.empty() ) { // forall variant
     444                                declsToAddBefore.push_back( ehmTypeIdExtern( exceptionName, parameters ) );
     445                        }
    423446                        return ehmExternVtable( exceptionName, parameters, tableName );
    424447                }
Note: See TracChangeset for help on using the changeset viewer.