Changeset 00f89a6 for src/GenPoly


Ignore:
Timestamp:
Nov 12, 2024, 10:18:13 PM (5 months ago)
Author:
Fangren Yu <f37yu@…>
Branches:
master
Children:
2325b57
Parents:
47174c4
Message:

attempt to fix const reference conversion

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/GenPoly/Lvalue.cpp

    r47174c4 r00f89a6  
    316316                        Warning::RvalueToReferenceConversion, toCString( expr->arg ) );
    317317
     318
     319                // allowing conversion in the rvalue to const ref case
     320                // use the referenced-to type to create temp variables
     321                ast::Type const * targetType = dstType;
     322                for (int i = 0; i < diff; ++i) targetType = (strict_dynamic_cast<ast::ReferenceType const *>(targetType))->base;
     323
    318324                static UniqueName tmpNamer( "__ref_tmp_" );
    319325                ast::ObjectDecl * tmp = new ast::ObjectDecl( expr->arg->location,
    320326                        tmpNamer.newName(),
    321                         ast::deepCopy( expr->arg->result ),
     327                        // ast::deepCopy( expr->arg->result ),
     328                        ast::deepCopy (targetType),
    322329                        new ast::SingleInit( expr->arg->location, expr->arg ) );
    323330                PRINT( std::cerr << "make tmp: " << tmp << std::endl; )
Note: See TracChangeset for help on using the changeset viewer.