Changeset c738ca4


Ignore:
Timestamp:
Jun 15, 2016, 4:35:44 PM (6 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
f4bc57c
Parents:
7ff30d07
Message:

add missing case to InitTweak::getFunctionName

Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/InitTweak/InitTweak.cc

    r7ff30d07 rc738ca4  
    115115
    116116        namespace {
    117                 template<typename CallExpr>
    118                 std::string funcName( CallExpr * expr ) {
    119                         Expression * func = expr->get_function();
     117                std::string funcName( Expression * func ) {
    120118                        if ( NameExpr * nameExpr = dynamic_cast< NameExpr * >( func ) ) {
    121119                                return nameExpr->get_name();
    122120                        } else if ( VariableExpr * varExpr = dynamic_cast< VariableExpr * >( func ) ) {
    123121                                return varExpr->get_var()->get_name();
     122                        }       else if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( func ) ) {
     123                                return funcName( castExpr->get_arg() );
    124124                        } else {
    125125                                assert( false && "Unexpected expression type being called as a function in call expression" );
     
    130130        std::string getFunctionName( Expression * expr ) {
    131131                if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( expr ) ) {
    132                         return funcName( appExpr );
     132                        return funcName( appExpr->get_function() );
    133133                } else if ( UntypedExpr * untypedExpr = dynamic_cast< UntypedExpr * > ( expr ) ) {
    134                         return funcName( untypedExpr );
     134                        return funcName( untypedExpr->get_function() );
    135135                } else {
     136                        std::cerr << expr << std::endl;
    136137                        assert( false && "Unexpected expression type passed to getFunctionName" );
    137138                }
  • src/SymTab/Autogen.cc

    r7ff30d07 rc738ca4  
    482482                ObjectDecl *dst = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), typeInst->clone() ), 0 );
    483483                if ( typeDecl->get_base() ) {
     484                        // xxx - generate ctor/dtors for typedecls, e.g.
     485                        // otype T = int *;
    484486                        stmts = new CompoundStmt( std::list< Label >() );
    485487                        UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) );
Note: See TracChangeset for help on using the changeset viewer.