Changeset 322b97e


Ignore:
Timestamp:
Aug 15, 2017, 1:27:46 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-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
c6c6f2ae
Parents:
ae4038d
git-author:
Rob Schluntz <rschlunt@…> (08/15/17 13:27:32)
git-committer:
Rob Schluntz <rschlunt@…> (08/15/17 13:27:46)
Message:

Resolve typeof in sizeof/alignof expressions [fixes #37]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AlternativeFinder.cc

    rae4038d r322b97e  
    941941        void AlternativeFinder::visit( SizeofExpr *sizeofExpr ) {
    942942                if ( sizeofExpr->get_isType() ) {
    943                         // xxx - resolveTypeof?
    944                         alternatives.push_back( Alternative( sizeofExpr->clone(), env, Cost::zero ) );
     943                        Type * newType = sizeofExpr->get_type()->clone();
     944                        alternatives.push_back( Alternative( new SizeofExpr( resolveTypeof( newType, indexer ) ), env, Cost::zero ) );
    945945                } else {
    946946                        // find all alternatives for the argument to sizeof
     
    961961        void AlternativeFinder::visit( AlignofExpr *alignofExpr ) {
    962962                if ( alignofExpr->get_isType() ) {
    963                         // xxx - resolveTypeof?
    964                         alternatives.push_back( Alternative( alignofExpr->clone(), env, Cost::zero ) );
     963                        Type * newType = alignofExpr->get_type()->clone();
     964                        alternatives.push_back( Alternative( new AlignofExpr( resolveTypeof( newType, indexer ) ), env, Cost::zero ) );
    965965                } else {
    966966                        // find all alternatives for the argument to sizeof
Note: See TracChangeset for help on using the changeset viewer.