Changeset 8f31be6 for src/ResolvExpr/CommonType.cc
- Timestamp:
- Jul 6, 2023, 11:07:27 AM (22 months ago)
- Branches:
- master
- Children:
- b4d2b3b
- Parents:
- c8bf1b5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CommonType.cc
rc8bf1b5 r8f31be6 696 696 void postvisit( const ast::BasicType * basic ) { 697 697 if ( auto basic2 = dynamic_cast< const ast::BasicType * >( type2 ) ) { 698 #warning remove casts when `commonTypes` moved to new AST699 700 /*701 ast::BasicType::Kind kind = (ast::BasicType::Kind)(int)commonTypes[ (BasicType::Kind)(int)basic->kind ][ (BasicType::Kind)(int)basic2->kind ];702 if (703 ( ( kind == basic->kind && basic->qualifiers >= basic2->qualifiers )704 || widen.first )705 && ( ( kind == basic2->kind && basic->qualifiers <= basic2->qualifiers )706 || widen.second )707 ) {708 result = new ast::BasicType{ kind, basic->qualifiers | basic2->qualifiers };709 }710 */711 698 ast::BasicType::Kind kind; 712 699 if (basic->kind != basic2->kind && !widen.first && !widen.second) return; … … 719 706 result = new ast::BasicType{ kind, basic->qualifiers | basic2->qualifiers }; 720 707 } 721 722 708 } else if ( 723 709 dynamic_cast< const ast::ZeroType * >( type2 ) 724 710 || dynamic_cast< const ast::OneType * >( type2 ) 725 711 ) { 726 #warning remove casts when `commonTypes` moved to new AST727 ast::BasicType::Kind kind = (ast::BasicType::Kind)(int)commonTypes[ (BasicType::Kind)(int)basic->kind ][ (BasicType::Kind)(int)ast::BasicType::SignedInt ];728 /*729 if ( // xxx - what does qualifier even do here??730 ( ( basic->qualifiers >= type2->qualifiers )731 || widen.first )732 && ( ( /* kind != basic->kind && basic->qualifiers <= type2->qualifiers )733 || widen.second )734 )735 */736 712 if (widen.second) { 737 713 result = new ast::BasicType{ basic->kind, basic->qualifiers | type2->qualifiers }; 738 714 } 739 715 } else if ( const ast::EnumInstType * enumInst = dynamic_cast< const ast::EnumInstType * >( type2 ) ) { 740 #warning remove casts when `commonTypes` moved to new AST741 716 const ast::EnumDecl* enumDecl = enumInst->base; 742 717 if ( enumDecl->base ) { 743 718 result = enumDecl->base.get(); 744 719 } else { 720 #warning remove casts when `commonTypes` moved to new AST 745 721 ast::BasicType::Kind kind = (ast::BasicType::Kind)(int)commonTypes[ (BasicType::Kind)(int)basic->kind ][ (BasicType::Kind)(int)ast::BasicType::SignedInt ]; 746 722 if ( … … 763 739 auto entry = open.find( *var ); 764 740 if ( entry != open.end() ) { 765 // if (tenv.lookup(*var)) {766 741 ast::AssertionSet need, have; 767 742 if ( ! tenv.bindVar(
Note: See TracChangeset
for help on using the changeset viewer.