Changeset c93bc28 for src/ResolvExpr


Ignore:
Timestamp:
Aug 15, 2017, 7:00:40 PM (7 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, resolv-new, with_gc
Children:
f6582243
Parents:
db67b11
Message:

Minor cleanup, debug statements

Location:
src/ResolvExpr
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AlternativeFinder.cc

    rdb67b11 rc93bc28  
    241241        void AlternativeFinder::addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member ) {
    242242                // by this point, member must be a name expr
    243                 NameExpr * nameExpr = safe_dynamic_cast< NameExpr * >( member );
     243                NameExpr * nameExpr = dynamic_cast< NameExpr * >( member );
     244                if ( ! nameExpr ) return;
    244245                const std::string & name = nameExpr->get_name();
    245246                std::list< Declaration* > members;
     
    263264                        // during parsing and reusing that information here.
    264265                        std::stringstream ss( constantExpr->get_constant()->get_value() );
    265                         int val;
     266                        int val = 0;
    266267                        std::string tmp;
    267268                        if ( ss >> val && ! (ss >> tmp) ) {
  • src/ResolvExpr/CommonType.cc

    rdb67b11 rc93bc28  
    6161                        // std::cerr << "unify success" << std::endl;
    6262                        if ( widenSecond ) {
     63                                // std::cerr << "widen second" << std::endl;
    6364                                if ( widenFirst || other->get_qualifiers() <= refType->get_qualifiers() ) {
    6465                                        result = new ReferenceType( refType->get_qualifiers(), common ); // refType->clone();
     
    6667                                }
    6768                        } else if ( widenFirst ) {
     69                                // std::cerr << "widen first" << std::endl;
    6870                                if ( widenSecond || refType->get_qualifiers() <= other->get_qualifiers() ) {
    6971                                        result = common;
     
    123125                } // if
    124126#ifdef DEBUG
    125                 std::cout << "============= commonType" << std::endl << "type1 is ";
    126                 type1->print( std::cout );
    127                 std::cout << " type2 is ";
    128                 type2->print( std::cout );
     127                std::cerr << "============= commonType" << std::endl << "type1 is ";
     128                type1->print( std::cerr );
     129                std::cerr << " type2 is ";
     130                type2->print( std::cerr );
    129131                if ( result ) {
    130                         std::cout << " common type is ";
    131                         result->print( std::cout );
     132                        std::cerr << " common type is ";
     133                        result->print( std::cerr );
    132134                } else {
    133                         std::cout << " no common type";
    134                 } // if
    135                 std::cout << std::endl;
     135                        std::cerr << " no common type";
     136                } // if
     137                std::cerr << std::endl;
    136138#endif
    137139                return result;
     
    201203        void CommonType::visit( PointerType *pointerType ) {
    202204                if ( PointerType *otherPointer = dynamic_cast< PointerType* >( type2 ) ) {
     205                        // std::cerr << "commonType: two pointers: " << pointerType << " / " << otherPointer << std::endl;
    203206                        if ( widenFirst && dynamic_cast< VoidType* >( otherPointer->get_base() ) && ! isFtype(pointerType->get_base()) ) {
    204207                                getCommonWithVoidPointer( otherPointer, pointerType );
     
    207210                        } else if ( ( pointerType->get_base()->get_qualifiers() >= otherPointer->get_base()->get_qualifiers() || widenFirst )
    208211                                           && ( pointerType->get_base()->get_qualifiers() <= otherPointer->get_base()->get_qualifiers() || widenSecond ) ) {
     212                                // std::cerr << "middle case" << std::endl;
    209213                                Type::Qualifiers tq1 = pointerType->get_base()->get_qualifiers(), tq2 = otherPointer->get_base()->get_qualifiers();
    210214                                pointerType->get_base()->get_qualifiers() = Type::Qualifiers();
     
    213217                                OpenVarSet newOpen( openVars );
    214218                                if ( unifyExact( pointerType->get_base(), otherPointer->get_base(), env, have, need, newOpen, indexer ) ) {
     219                                        // std::cerr << "unifyExact success" << std::endl;
    215220                                        if ( tq1 < tq2 ) {
    216221                                                result = pointerType->clone();
     
    220225                                        result->get_qualifiers() = tq1 | tq2;
    221226                                } else {
    222                                         /// std::cout << "place for ptr-to-type" << std::endl;
     227                                        /// std::cerr << "place for ptr-to-type" << std::endl;
    223228                                } // if
    224229                                pointerType->get_base()->get_qualifiers() = tq1;
     
    235240        void CommonType::visit( ReferenceType *refType ) {
    236241                if ( ReferenceType *otherRef = dynamic_cast< ReferenceType* >( type2 ) ) {
     242                        // std::cerr << "commonType: both references: " << refType << " / " << otherRef << std::endl;
     243                        // std::cerr << ( refType->get_base()->get_qualifiers() >= otherRef->get_base()->get_qualifiers() || widenFirst ) << (refType->get_base()->get_qualifiers() <= otherRef->get_base()->get_qualifiers() || widenSecond) << std::endl;
    237244                        if ( widenFirst && dynamic_cast< VoidType* >( otherRef->get_base() ) && ! isFtype(refType->get_base()) ) {
    238245                                getCommonWithVoidPointer( otherRef, refType );
     
    241248                        } else if ( ( refType->get_base()->get_qualifiers() >= otherRef->get_base()->get_qualifiers() || widenFirst )
    242249                                           && ( refType->get_base()->get_qualifiers() <= otherRef->get_base()->get_qualifiers() || widenSecond ) ) {
     250                                // std::cerr << "middle case" << std::endl;
    243251                                Type::Qualifiers tq1 = refType->get_base()->get_qualifiers(), tq2 = otherRef->get_base()->get_qualifiers();
    244252                                refType->get_base()->get_qualifiers() = Type::Qualifiers();
     
    254262                                        result->get_qualifiers() = tq1 | tq2;
    255263                                } else {
    256                                         /// std::cout << "place for ptr-to-type" << std::endl;
     264                                        /// std::cerr << "place for ptr-to-type" << std::endl;
    257265                                } // if
    258266                                refType->get_base()->get_qualifiers() = tq1;
  • src/ResolvExpr/ResolveTypeof.cc

    rdb67b11 rc93bc28  
    6060                        assert( newExpr->has_result() && ! newExpr->get_result()->isVoid() );
    6161                        Type *newType = newExpr->get_result();
     62                        newExpr->set_result( nullptr );
    6263                        delete typeofType;
     64                        delete newExpr;
    6365                        return newType;
    6466                } // if
Note: See TracChangeset for help on using the changeset viewer.