Ignore:
Timestamp:
Aug 15, 2017, 7:00:40 PM (4 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
f6582243
Parents:
db67b11
Message:

Minor cleanup, debug statements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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;
Note: See TracChangeset for help on using the changeset viewer.