Changeset 2a4b088 for src/Parser


Ignore:
Timestamp:
Feb 2, 2016, 2:00:37 PM (8 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
4789f44, b10c9959
Parents:
5721a6d
Message:

Make offsetof expressions work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    r5721a6d r2a4b088  
    606606          case OperatorNode::OffsetOf:
    607607                {
    608                         assert( false );
     608                        assert( args.size() == 2 );
     609                       
     610                        if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args() ) ) {
     611                                NameExpr *member = dynamic_cast<NameExpr *>( args.back() );
     612                                assert( member != 0 );
     613
     614                                return new UntypedOffsetofExpr( arg->get_decl()->buildType(), member->get_name() );
     615                        } else assert( false );
    609616                }
    610617          case OperatorNode::Attr:
Note: See TracChangeset for help on using the changeset viewer.