Changeset 47534159 for src/CodeGen


Ignore:
Timestamp:
Dec 4, 2015, 2:55:22 PM (9 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:
000b914, 63db3d76
Parents:
f8b961b
Message:

Added support for alignof expressions for everything but polymorphic types

Location:
src/CodeGen
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    rf8b961b r47534159  
    442442                output << ")";
    443443        }
     444
     445        void CodeGenerator::visit( AlignofExpr *sizeofExpr ) {
     446                // use GCC extension to avoid bumping std to C11
     447                output << "__alignof__(";
     448                if ( sizeofExpr->get_isType() ) {
     449                        output << genType( sizeofExpr->get_type(), "" );
     450                } else {
     451                        sizeofExpr->get_expr()->accept( *this );
     452                } // if
     453                output << ")";
     454        }
    444455 
    445456        void CodeGenerator::visit( LogicalExpr *logicalExpr ) {
  • src/CodeGen/CodeGenerator.h

    rf8b961b r47534159  
    6060                virtual void visit( ConstantExpr *constantExpr );
    6161                virtual void visit( SizeofExpr *sizeofExpr );
     62                virtual void visit( AlignofExpr *alignofExpr );
    6263                virtual void visit( LogicalExpr *logicalExpr );
    6364                virtual void visit( ConditionalExpr *conditionalExpr );
Note: See TracChangeset for help on using the changeset viewer.