Changeset e213560


Ignore:
Timestamp:
Jul 26, 2017, 9:20:59 PM (7 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
ab6ed1e
Parents:
15d1cc3 (diff), 2edd80ae (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg2:software/cfa/cfa-cc

Location:
src
Files:
6 added
24 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    r15d1cc3 re213560  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Thu Jun  8 16:00:00 2017
    13 // Update Count     : 485
     12// Last Modified On : Tus Jul 25 15:29:00 2017
     13// Update Count     : 486
    1414//
    1515#include "CodeGenerator.h"
     
    594594        }
    595595
     596        void CodeGenerator::visit( VirtualCastExpr * castExpr ) {
     597                assertf( ! genC, "VirtualCastExpr should not reach code generation." );
     598                extension( castExpr );
     599                output << "(virtual ";
     600                castExpr->get_arg()->accept( *this );
     601                output << ")";
     602        }
     603
    596604        void CodeGenerator::visit( UntypedMemberExpr * memberExpr ) {
    597605                assertf( ! genC, "UntypedMemberExpr should not reach code generation." );
  • src/CodeGen/CodeGenerator.h

    r15d1cc3 re213560  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 21 22:16:21 2017
    13 // Update Count     : 53
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Tus Jul 25 25:30:00 2017
     13// Update Count     : 54
    1414//
    1515
     
    5959                virtual void visit( AddressExpr *addressExpr );
    6060                virtual void visit( CastExpr *castExpr );
     61                virtual void visit( VirtualCastExpr *castExpr );
    6162                virtual void visit( UntypedMemberExpr *memberExpr );
    6263                virtual void visit( MemberExpr *memberExpr );
  • src/Common/PassVisitor.h

    r15d1cc3 re213560  
    8181        virtual void visit( NameExpr *nameExpr ) override final;
    8282        virtual void visit( CastExpr *castExpr ) override final;
     83        virtual void visit( VirtualCastExpr *castExpr ) override final;
    8384        virtual void visit( AddressExpr *addressExpr ) override final;
    8485        virtual void visit( LabelAddressExpr *labAddressExpr ) override final;
     
    168169        virtual Expression* mutate( LabelAddressExpr *labAddressExpr ) override final;
    169170        virtual Expression* mutate( CastExpr *castExpr ) override final;
     171        virtual Expression* mutate( VirtualCastExpr *castExpr ) override final;
    170172        virtual Expression* mutate( UntypedMemberExpr *memberExpr ) override final;
    171173        virtual Expression* mutate( MemberExpr *memberExpr ) override final;
  • src/Common/PassVisitor.impl.h

    r15d1cc3 re213560  
    607607
    608608template< typename pass_type >
     609void PassVisitor< pass_type >::visit( VirtualCastExpr * node ) {
     610        VISIT_BODY( node );
     611}
     612
     613template< typename pass_type >
    609614void PassVisitor< pass_type >::visit( AddressExpr * node ) {
    610615        VISIT_BODY( node );
     
    979984
    980985template< typename pass_type >
     986Expression * PassVisitor< pass_type >::mutate( VirtualCastExpr * node ) {
     987        MUTATE_BODY( Expression, node );
     988}
     989
     990template< typename pass_type >
    981991Expression * PassVisitor< pass_type >::mutate( UntypedMemberExpr * node ) {
    982992        MUTATE_BODY( Expression, node );
  • src/GenPoly/Box.cc

    r15d1cc3 re213560  
    17501750
    17511751                Expression *PolyGenericCalculator::mutate( SizeofExpr *sizeofExpr ) {
    1752                         Type *ty = sizeofExpr->get_type();
     1752                        Type *ty = sizeofExpr->get_isType() ? sizeofExpr->get_type() : sizeofExpr->get_expr()->get_result();
    17531753                        if ( findGeneric( ty ) ) {
    17541754                                Expression *ret = new NameExpr( sizeofName( mangleType( ty ) ) );
     
    17601760
    17611761                Expression *PolyGenericCalculator::mutate( AlignofExpr *alignofExpr ) {
    1762                         Type *ty = alignofExpr->get_type();
     1762                        Type *ty = alignofExpr->get_isType() ? alignofExpr->get_type() : alignofExpr->get_expr()->get_result();
    17631763                        if ( findGeneric( ty ) ) {
    17641764                                Expression *ret = new NameExpr( alignofName( mangleType( ty ) ) );
  • src/Makefile.am

    r15d1cc3 re213560  
    1010## Author           : Peter A. Buhr
    1111## Created On       : Sun May 31 08:51:46 2015
    12 ## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Thu Oct 27 20:41:25 2016
    14 ## Update Count     : 75
     12## Last Modified By : Andrew Beach
     13## Last Modified On : Tus Jul 25 10:34:00 2017
     14## Update Count     : 76
    1515###############################################################################
    1616
     
    3737include SynTree/module.mk
    3838include Tuples/module.mk
     39include Virtual/module.mk
    3940
    4041# put into lib for now
  • src/Makefile.in

    r15d1cc3 re213560  
    2323#SRC +=  ArgTweak/Rewriter.cc \
    2424#       ArgTweak/Mutate.cc
     25
     26######################### -*- Mode: Makefile-Gmake -*- ########################
     27###############################################################################
    2528
    2629######################### -*- Mode: Makefile-Gmake -*- ########################
     
    255258        Tuples/driver_cfa_cpp-TupleAssignment.$(OBJEXT) \
    256259        Tuples/driver_cfa_cpp-TupleExpansion.$(OBJEXT) \
    257         Tuples/driver_cfa_cpp-Explode.$(OBJEXT)
     260        Tuples/driver_cfa_cpp-Explode.$(OBJEXT) \
     261        Virtual/driver_cfa_cpp-ExpandCasts.$(OBJEXT)
    258262am_driver_cfa_cpp_OBJECTS = $(am__objects_1)
    259263driver_cfa_cpp_OBJECTS = $(am_driver_cfa_cpp_OBJECTS)
     
    355359        $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk \
    356360        $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk \
    357         $(srcdir)/Tuples/module.mk $(top_srcdir)/automake/depcomp \
    358         $(top_srcdir)/automake/ylwrap Parser/lex.cc Parser/parser.cc \
    359         Parser/parser.hh
     361        $(srcdir)/Tuples/module.mk $(srcdir)/Virtual/module.mk \
     362        $(top_srcdir)/automake/depcomp $(top_srcdir)/automake/ylwrap \
     363        Parser/lex.cc Parser/parser.cc Parser/parser.hh
    360364DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
    361365ACLOCAL = @ACLOCAL@
     
    533537        SynTree/Attribute.cc SynTree/VarExprReplacer.cc \
    534538        Tuples/TupleAssignment.cc Tuples/TupleExpansion.cc \
    535         Tuples/Explode.cc
     539        Tuples/Explode.cc Virtual/ExpandCasts.cc
    536540MAINTAINERCLEANFILES = Parser/parser.output ${libdir}/${notdir \
    537541        ${cfa_cpplib_PROGRAMS}}
     
    552556.SUFFIXES:
    553557.SUFFIXES: .cc .ll .o .obj .yy
    554 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Concurrency/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(am__configure_deps)
     558$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Concurrency/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(srcdir)/Virtual/module.mk $(am__configure_deps)
    555559        @for dep in $?; do \
    556560          case '$(am__configure_deps)' in \
     
    572576            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
    573577        esac;
    574 $(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Concurrency/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(am__empty):
     578$(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Concurrency/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(srcdir)/Virtual/module.mk $(am__empty):
    575579
    576580$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
     
    941945Tuples/driver_cfa_cpp-Explode.$(OBJEXT): Tuples/$(am__dirstamp) \
    942946        Tuples/$(DEPDIR)/$(am__dirstamp)
     947Virtual/$(am__dirstamp):
     948        @$(MKDIR_P) Virtual
     949        @: > Virtual/$(am__dirstamp)
     950Virtual/$(DEPDIR)/$(am__dirstamp):
     951        @$(MKDIR_P) Virtual/$(DEPDIR)
     952        @: > Virtual/$(DEPDIR)/$(am__dirstamp)
     953Virtual/driver_cfa_cpp-ExpandCasts.$(OBJEXT): Virtual/$(am__dirstamp) \
     954        Virtual/$(DEPDIR)/$(am__dirstamp)
    943955driver/$(am__dirstamp):
    944956        @$(MKDIR_P) driver
     
    963975        -rm -f SynTree/*.$(OBJEXT)
    964976        -rm -f Tuples/*.$(OBJEXT)
     977        -rm -f Virtual/*.$(OBJEXT)
    965978
    966979distclean-compile:
     
    10781091@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po@am__quote@
    10791092@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/driver_cfa_cpp-TupleExpansion.Po@am__quote@
     1093@AMDEP_TRUE@@am__include@ @am__quote@Virtual/$(DEPDIR)/driver_cfa_cpp-ExpandCasts.Po@am__quote@
    10801094
    10811095.cc.o:
     
    26482662@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    26492663@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Explode.obj `if test -f 'Tuples/Explode.cc'; then $(CYGPATH_W) 'Tuples/Explode.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Explode.cc'; fi`
     2664
     2665Virtual/driver_cfa_cpp-ExpandCasts.o: Virtual/ExpandCasts.cc
     2666@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Virtual/driver_cfa_cpp-ExpandCasts.o -MD -MP -MF Virtual/$(DEPDIR)/driver_cfa_cpp-ExpandCasts.Tpo -c -o Virtual/driver_cfa_cpp-ExpandCasts.o `test -f 'Virtual/ExpandCasts.cc' || echo '$(srcdir)/'`Virtual/ExpandCasts.cc
     2667@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Virtual/$(DEPDIR)/driver_cfa_cpp-ExpandCasts.Tpo Virtual/$(DEPDIR)/driver_cfa_cpp-ExpandCasts.Po
     2668@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Virtual/ExpandCasts.cc' object='Virtual/driver_cfa_cpp-ExpandCasts.o' libtool=no @AMDEPBACKSLASH@
     2669@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2670@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Virtual/driver_cfa_cpp-ExpandCasts.o `test -f 'Virtual/ExpandCasts.cc' || echo '$(srcdir)/'`Virtual/ExpandCasts.cc
     2671
     2672Virtual/driver_cfa_cpp-ExpandCasts.obj: Virtual/ExpandCasts.cc
     2673@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Virtual/driver_cfa_cpp-ExpandCasts.obj -MD -MP -MF Virtual/$(DEPDIR)/driver_cfa_cpp-ExpandCasts.Tpo -c -o Virtual/driver_cfa_cpp-ExpandCasts.obj `if test -f 'Virtual/ExpandCasts.cc'; then $(CYGPATH_W) 'Virtual/ExpandCasts.cc'; else $(CYGPATH_W) '$(srcdir)/Virtual/ExpandCasts.cc'; fi`
     2674@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Virtual/$(DEPDIR)/driver_cfa_cpp-ExpandCasts.Tpo Virtual/$(DEPDIR)/driver_cfa_cpp-ExpandCasts.Po
     2675@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Virtual/ExpandCasts.cc' object='Virtual/driver_cfa_cpp-ExpandCasts.obj' libtool=no @AMDEPBACKSLASH@
     2676@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2677@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Virtual/driver_cfa_cpp-ExpandCasts.obj `if test -f 'Virtual/ExpandCasts.cc'; then $(CYGPATH_W) 'Virtual/ExpandCasts.cc'; else $(CYGPATH_W) '$(srcdir)/Virtual/ExpandCasts.cc'; fi`
    26502678
    26512679.ll.cc:
     
    27962824        -rm -f Tuples/$(DEPDIR)/$(am__dirstamp)
    27972825        -rm -f Tuples/$(am__dirstamp)
     2826        -rm -f Virtual/$(DEPDIR)/$(am__dirstamp)
     2827        -rm -f Virtual/$(am__dirstamp)
    27982828        -rm -f driver/$(am__dirstamp)
    27992829
     
    28112841
    28122842distclean: distclean-am
    2813         -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) Concurrency/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR)
     2843        -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) Concurrency/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) Virtual/$(DEPDIR)
    28142844        -rm -f Makefile
    28152845distclean-am: clean-am distclean-compile distclean-generic \
     
    28572887
    28582888maintainer-clean: maintainer-clean-am
    2859         -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) Concurrency/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR)
     2889        -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) Concurrency/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) Virtual/$(DEPDIR)
    28602890        -rm -f Makefile
    28612891maintainer-clean-am: distclean-am maintainer-clean-generic
  • src/Parser/ExpressionNode.cc

    r15d1cc3 re213560  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Tus Jul 18 10:08:00 2017
    13 // Update Count     : 550
     12// Last Modified On : Tus Jul 25 10:11:00 2017
     13// Update Count     : 551
    1414//
    1515
     
    252252}
    253253
     254
     255Expression *build_virtual_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
     256        Type *targetType = maybeMoveBuildType( decl_node );
     257        Expression *castArg = maybeMoveBuild< Expression >( expr_node );
     258        return new VirtualCastExpr( castArg, targetType );
     259}
     260
    254261Expression *build_fieldSel( ExpressionNode *expr_node, Expression *member ) {
    255262        UntypedMemberExpr *ret = new UntypedMemberExpr( member, maybeMoveBuild< Expression >(expr_node) );
  • src/Parser/ParseNode.h

    r15d1cc3 re213560  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:28:16 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 09:32:30 2017
    13 // Update Count     : 786
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Tus Jul 25 10:09:00 2017
     13// Update Count     : 787
    1414//
    1515
     
    170170
    171171Expression * build_cast( DeclarationNode * decl_node, ExpressionNode * expr_node );
     172Expression * build_virtual_cast( DeclarationNode * decl_node, ExpressionNode * expr_node );
    172173Expression * build_fieldSel( ExpressionNode * expr_node, Expression * member );
    173174Expression * build_pfieldSel( ExpressionNode * expr_node, Expression * member );
  • src/Parser/parser.yy

    r15d1cc3 re213560  
    99// Author           : Peter A. Buhr
    1010// Created On       : Sat Sep  1 20:22:55 2001
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jul 24 09:01:14 2017
    13 // Update Count     : 2463
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Tus Jul 25 10:07:00 2017
     13// Update Count     : 2464
    1414//
    1515
     
    573573                // VIRTUAL cannot be opt because of look ahead issues
    574574        | '(' VIRTUAL ')' cast_expression
    575                 { $$ = new ExpressionNode( build_cast( nullptr, $4 ) ); }
     575                { $$ = new ExpressionNode( build_virtual_cast( nullptr, $4 ) ); }
    576576        | '(' VIRTUAL type_no_function ')' cast_expression
    577                 { $$ = new ExpressionNode( build_cast( $3, $5 ) ); }
     577                { $$ = new ExpressionNode( build_virtual_cast( $3, $5 ) ); }
    578578//      | '(' type_no_function ')' tuple
    579579//              { $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
  • src/ResolvExpr/AlternativeFinder.cc

    r15d1cc3 re213560  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sat May 16 23:52:08 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Mar 17 09:14:17 2017
    13 // Update Count     : 30
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Wed Jul 26 11:33:00 2017
     13// Update Count     : 31
    1414//
    1515
     
    878878        }
    879879
     880        void AlternativeFinder::visit( VirtualCastExpr * castExpr ) {
     881                assertf( castExpr->get_result(), "Implicate virtual cast targets not yet supported." );
     882                AlternativeFinder finder( indexer, env );
     883                // don't prune here, since it's guaranteed all alternatives will have the same type
     884                // (giving the alternatives different types is half of the point of ConstructorExpr nodes)
     885                finder.findWithAdjustment( castExpr->get_arg(), false );
     886                for ( Alternative & alt : finder.alternatives ) {
     887                        alternatives.push_back( Alternative(
     888                                new VirtualCastExpr( alt.expr->clone(), castExpr->get_result()->clone() ),
     889                                alt.env, alt.cost ) );
     890                }
     891        }
     892
    880893        void AlternativeFinder::visit( UntypedMemberExpr *memberExpr ) {
    881894                AlternativeFinder funcFinder( indexer, env );
  • src/ResolvExpr/AlternativeFinder.h

    r15d1cc3 re213560  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sat May 16 23:56:12 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 09:35:32 2017
    13 // Update Count     : 3
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Wed Jul 26 11:24:00 2017
     13// Update Count     : 4
    1414//
    1515
     
    4949                virtual void visit( AddressExpr *addressExpr );
    5050                virtual void visit( CastExpr *castExpr );
     51                virtual void visit( VirtualCastExpr *castExpr );
    5152                virtual void visit( UntypedMemberExpr *memberExpr );
    5253                virtual void visit( MemberExpr *memberExpr );
  • src/SynTree/ApplicationExpr.cc

    r15d1cc3 re213560  
    4444}
    4545
    46 ApplicationExpr::ApplicationExpr( Expression *funcExpr ) : function( funcExpr ) {
     46ApplicationExpr::ApplicationExpr( Expression *funcExpr, const std::list< Expression * > & argList ) : function( funcExpr ), args( argList ) {
    4747        PointerType *pointer = safe_dynamic_cast< PointerType* >( funcExpr->get_result() );
    4848        FunctionType *function = safe_dynamic_cast< FunctionType* >( pointer->get_base() );
  • src/SynTree/Expression.cc

    r15d1cc3 re213560  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Mar 30 16:41:13 2017
    13 // Update Count     : 52
     12// Last Modified On : Tue Jul 25 14:15:47 2017
     13// Update Count     : 54
    1414//
    1515
     
    298298        if ( result->isVoid() ) {
    299299                os << "nothing";
     300        } else {
     301                result->print( os, indent+2 );
     302        } // if
     303        os << std::endl;
     304        Expression::print( os, indent );
     305}
     306
     307VirtualCastExpr::VirtualCastExpr( Expression *arg_, Type *toType ) : Expression(), arg(arg_) {
     308        set_result(toType);
     309}
     310
     311VirtualCastExpr::VirtualCastExpr( const VirtualCastExpr &other ) : Expression( other ), arg( maybeClone( other.arg ) ) {
     312}
     313
     314VirtualCastExpr::~VirtualCastExpr() {
     315        delete arg;
     316}
     317
     318void VirtualCastExpr::print( std::ostream &os, int indent ) const {
     319        os << "Virtual Cast of:" << std::endl << std::string( indent+2, ' ' );
     320        arg->print(os, indent+2);
     321        os << std::endl << std::string( indent, ' ' ) << "to:" << std::endl;
     322        os << std::string( indent+2, ' ' );
     323        if ( ! result ) {
     324                os << "unknown";
    300325        } else {
    301326                result->print( os, indent+2 );
     
    503528}
    504529
    505 AsmExpr::AsmExpr( const AsmExpr & other ) : inout( maybeClone( other.inout ) ), constraint( maybeClone( other.constraint ) ), operand( maybeClone( other.operand ) ) {}
     530AsmExpr::AsmExpr( const AsmExpr & other ) : Expression( other ), inout( maybeClone( other.inout ) ), constraint( maybeClone( other.constraint ) ), operand( maybeClone( other.operand ) ) {}
    506531
    507532
  • src/SynTree/Expression.h

    r15d1cc3 re213560  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 09:53:16 2017
    13 // Update Count     : 42
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Mon Jul 24 16:27:00 2017
     13// Update Count     : 43
    1414//
    1515
     
    7979class ApplicationExpr : public Expression {
    8080  public:
    81         ApplicationExpr( Expression * function );
     81        ApplicationExpr( Expression * function, const std::list<Expression *> & args = std::list< Expression * >() );
    8282        ApplicationExpr( const ApplicationExpr & other );
    8383        virtual ~ApplicationExpr();
     
    194194
    195195        Expression * get_arg() const { return arg; }
    196         void set_arg(Expression * newValue ) { arg = newValue; }
     196        void set_arg( Expression * newValue ) { arg = newValue; }
    197197
    198198        virtual CastExpr * clone() const { return new CastExpr( * this ); }
     199        virtual void accept( Visitor & v ) { v.visit( this ); }
     200        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     201        virtual void print( std::ostream & os, int indent = 0 ) const;
     202  private:
     203        Expression * arg;
     204};
     205
     206/// VirtualCastExpr repersents a virtual dynamic cast, e.g. (virtual exception)e
     207class VirtualCastExpr : public Expression {
     208  public:
     209        VirtualCastExpr( Expression * arg, Type * toType );
     210        VirtualCastExpr( const VirtualCastExpr & other );
     211        virtual ~VirtualCastExpr();
     212
     213        Expression * get_arg() const { return arg; }
     214        void set_arg( Expression * newValue ) { arg = newValue; }
     215
     216        virtual VirtualCastExpr * clone() const { return new VirtualCastExpr( * this ); }
    199217        virtual void accept( Visitor & v ) { v.visit( this ); }
    200218        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
  • src/SynTree/Mutator.cc

    r15d1cc3 re213560  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Thu Jun 22 13:43:00 2017
    13 // Update Count     : 24
     12// Last Modified On : Mon Jul 24 16:32:00 2017
     13// Update Count     : 25
    1414//
    1515
     
    235235}
    236236
     237Expression *Mutator::mutate( VirtualCastExpr *castExpr ) {
     238        castExpr->set_env( maybeMutate( castExpr->get_env(), *this ) );
     239        castExpr->set_result( maybeMutate( castExpr->get_result(), *this ) );
     240        castExpr->set_arg( maybeMutate( castExpr->get_arg(), *this ) );
     241        return castExpr;
     242}
     243
    237244Expression *Mutator::mutate( UntypedMemberExpr *memberExpr ) {
    238245        memberExpr->set_env( maybeMutate( memberExpr->get_env(), *this ) );
  • src/SynTree/Mutator.h

    r15d1cc3 re213560  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 09:51:30 2017
    13 // Update Count     : 15
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Mon Jul 24 16:31:00 2017
     13// Update Count     : 16
    1414//
    1515#include <cassert>
     
    5959        virtual Expression* mutate( LabelAddressExpr *labAddressExpr );
    6060        virtual Expression* mutate( CastExpr *castExpr );
     61        virtual Expression* mutate( VirtualCastExpr *castExpr );
    6162        virtual Expression* mutate( UntypedMemberExpr *memberExpr );
    6263        virtual Expression* mutate( MemberExpr *memberExpr );
  • src/SynTree/SynTree.h

    r15d1cc3 re213560  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 09:51:46 2017
    13 // Update Count     : 10
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Mon Jul 24 16:54:00 2017
     13// Update Count     : 11
    1414//
    1515
     
    6666class LabelAddressExpr;
    6767class CastExpr;
     68class VirtualCastExpr;
    6869class MemberExpr;
    6970class UntypedMemberExpr;
  • src/SynTree/Visitor.cc

    r15d1cc3 re213560  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Thu Jun 22 13:41:00 2017
    13 // Update Count     : 26
     12// Last Modified On : Mon Jul 24 16:30:00 2017
     13// Update Count     : 27
    1414//
    1515
     
    192192}
    193193
     194void Visitor::visit( VirtualCastExpr *castExpr ) {
     195        maybeAccept( castExpr->get_result(), *this );
     196        maybeAccept( castExpr->get_arg(), *this );
     197}
     198
    194199void Visitor::visit( UntypedMemberExpr *memberExpr ) {
    195200        maybeAccept( memberExpr->get_result(), *this );
  • src/SynTree/Visitor.h

    r15d1cc3 re213560  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 09:54:04 2017
    13 // Update Count     : 12
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Mon Jul 24 16:28:00 2017
     13// Update Count     : 13
    1414//
    1515
     
    6060        virtual void visit( NameExpr *nameExpr );
    6161        virtual void visit( CastExpr *castExpr );
     62        virtual void visit( VirtualCastExpr *castExpr );
    6263        virtual void visit( AddressExpr *addressExpr );
    6364        virtual void visit( LabelAddressExpr *labAddressExpr );
  • src/libcfa/Makefile.am

    r15d1cc3 re213560  
    1010## Author           : Peter A. Buhr
    1111## Created On       : Sun May 31 08:54:01 2015
    12 ## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Thu Jul 20 23:09:34 2017
    14 ## Update Count     : 220
     12## Last Modified By : Andrew Beach
     13## Last Modified On : Wed Jul 26 14:15:00 2017
     14## Update Count     : 221
    1515###############################################################################
    1616
     
    5252libobjs = ${headers:=.o}
    5353libsrc = libcfa-prelude.c interpose.c libhdr/libdebug.c ${headers:=.c} \
    54          assert.c exception.c typeobject.c
     54         assert.c exception.c virtual.c
    5555
    5656# not all platforms support concurrency, add option do disable it
     
    6969        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $<
    7070
    71 libcfa_a-typeobject.o : typeobject.c
     71libcfa_a-virtual.o : virtual.c
    7272        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $<
    7373
     
    7878        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $<
    7979
    80 libcfa_d_a-typeobject.o : typeobject.c
     80libcfa_d_a-virtual.o : virtual.c
    8181        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $<
    8282
  • src/libcfa/Makefile.in

    r15d1cc3 re213560  
    154154        concurrency/coroutine.c concurrency/thread.c \
    155155        concurrency/kernel.c concurrency/monitor.c assert.c \
    156         exception.c typeobject.c \
    157         concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/alarm.c \
    158         concurrency/invoke.c concurrency/preemption.c
     156        exception.c virtual.c concurrency/CtxSwitch-@MACHINE_TYPE@.S \
     157        concurrency/alarm.c concurrency/invoke.c \
     158        concurrency/preemption.c
    159159am__dirstamp = $(am__leading_dot)dirstamp
    160160@BUILD_CONCURRENCY_TRUE@am__objects_1 = concurrency/libcfa_d_a-coroutine.$(OBJEXT) \
     
    178178        libhdr/libcfa_d_a-libdebug.$(OBJEXT) $(am__objects_2) \
    179179        libcfa_d_a-assert.$(OBJEXT) libcfa_d_a-exception.$(OBJEXT) \
    180         libcfa_d_a-typeobject.$(OBJEXT) $(am__objects_3)
     180        libcfa_d_a-virtual.$(OBJEXT) $(am__objects_3)
    181181am_libcfa_d_a_OBJECTS = $(am__objects_4)
    182182libcfa_d_a_OBJECTS = $(am_libcfa_d_a_OBJECTS)
     
    189189        concurrency/coroutine.c concurrency/thread.c \
    190190        concurrency/kernel.c concurrency/monitor.c assert.c \
    191         exception.c typeobject.c \
    192         concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/alarm.c \
    193         concurrency/invoke.c concurrency/preemption.c
     191        exception.c virtual.c concurrency/CtxSwitch-@MACHINE_TYPE@.S \
     192        concurrency/alarm.c concurrency/invoke.c \
     193        concurrency/preemption.c
    194194@BUILD_CONCURRENCY_TRUE@am__objects_5 = concurrency/libcfa_a-coroutine.$(OBJEXT) \
    195195@BUILD_CONCURRENCY_TRUE@        concurrency/libcfa_a-thread.$(OBJEXT) \
     
    211211        libhdr/libcfa_a-libdebug.$(OBJEXT) $(am__objects_6) \
    212212        libcfa_a-assert.$(OBJEXT) libcfa_a-exception.$(OBJEXT) \
    213         libcfa_a-typeobject.$(OBJEXT) $(am__objects_7)
     213        libcfa_a-virtual.$(OBJEXT) $(am__objects_7)
    214214am_libcfa_a_OBJECTS = $(am__objects_8)
    215215libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS)
     
    419419libobjs = ${headers:=.o}
    420420libsrc = libcfa-prelude.c interpose.c libhdr/libdebug.c ${headers:=.c} \
    421         assert.c exception.c typeobject.c $(am__append_4)
     421        assert.c exception.c virtual.c $(am__append_4)
    422422libcfa_a_SOURCES = ${libsrc}
    423423libcfa_a_CFLAGS = -nodebug -O2
     
    594594@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-rational.Po@am__quote@
    595595@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-stdlib.Po@am__quote@
    596 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-typeobject.Po@am__quote@
     596@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-virtual.Po@am__quote@
    597597@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-assert.Po@am__quote@
    598598@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-exception.Po@am__quote@
     
    605605@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-rational.Po@am__quote@
    606606@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-stdlib.Po@am__quote@
    607 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-typeobject.Po@am__quote@
     607@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-virtual.Po@am__quote@
    608608@AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/CtxSwitch-@MACHINE_TYPE@.Po@am__quote@
    609609@AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/libcfa_a-alarm.Po@am__quote@
     
    916916@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
    917917
    918 libcfa_d_a-typeobject.obj: typeobject.c
    919 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-typeobject.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-typeobject.Tpo -c -o libcfa_d_a-typeobject.obj `if test -f 'typeobject.c'; then $(CYGPATH_W) 'typeobject.c'; else $(CYGPATH_W) '$(srcdir)/typeobject.c'; fi`
    920 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-typeobject.Tpo $(DEPDIR)/libcfa_d_a-typeobject.Po
    921 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='typeobject.c' object='libcfa_d_a-typeobject.obj' libtool=no @AMDEPBACKSLASH@
    922 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    923 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-typeobject.obj `if test -f 'typeobject.c'; then $(CYGPATH_W) 'typeobject.c'; else $(CYGPATH_W) '$(srcdir)/typeobject.c'; fi`
     918libcfa_d_a-virtual.obj: virtual.c
     919@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-virtual.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-virtual.Tpo -c -o libcfa_d_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
     920@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-virtual.Tpo $(DEPDIR)/libcfa_d_a-virtual.Po
     921@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='virtual.c' object='libcfa_d_a-virtual.obj' libtool=no @AMDEPBACKSLASH@
     922@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     923@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
    924924
    925925concurrency/libcfa_d_a-alarm.o: concurrency/alarm.c
     
    12101210@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
    12111211
    1212 libcfa_a-typeobject.obj: typeobject.c
    1213 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-typeobject.obj -MD -MP -MF $(DEPDIR)/libcfa_a-typeobject.Tpo -c -o libcfa_a-typeobject.obj `if test -f 'typeobject.c'; then $(CYGPATH_W) 'typeobject.c'; else $(CYGPATH_W) '$(srcdir)/typeobject.c'; fi`
    1214 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-typeobject.Tpo $(DEPDIR)/libcfa_a-typeobject.Po
    1215 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='typeobject.c' object='libcfa_a-typeobject.obj' libtool=no @AMDEPBACKSLASH@
    1216 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1217 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-typeobject.obj `if test -f 'typeobject.c'; then $(CYGPATH_W) 'typeobject.c'; else $(CYGPATH_W) '$(srcdir)/typeobject.c'; fi`
     1212libcfa_a-virtual.obj: virtual.c
     1213@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-virtual.obj -MD -MP -MF $(DEPDIR)/libcfa_a-virtual.Tpo -c -o libcfa_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
     1214@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-virtual.Tpo $(DEPDIR)/libcfa_a-virtual.Po
     1215@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='virtual.c' object='libcfa_a-virtual.obj' libtool=no @AMDEPBACKSLASH@
     1216@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1217@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
    12181218
    12191219concurrency/libcfa_a-alarm.o: concurrency/alarm.c
     
    15091509        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $<
    15101510
    1511 libcfa_a-typeobject.o : typeobject.c
     1511libcfa_a-virtual.o : virtual.c
    15121512        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $<
    15131513
     
    15181518        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $<
    15191519
    1520 libcfa_d_a-typeobject.o : typeobject.c
     1520libcfa_d_a-virtual.o : virtual.c
    15211521        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $<
    15221522
  • src/main.cc

    r15d1cc3 re213560  
    1111// Created On       : Fri May 15 23:12:02 2015
    1212// Last Modified By : Andrew Beach
    13 // Last Modified On : Fri Jul  7 11:13:00 2017
    14 // Update Count     : 442
     13// Last Modified On : Wed Jul 26 14:38:00 2017
     14// Update Count     : 443
    1515//
    1616
     
    5858#include "SynTree/Visitor.h"                // for acceptAll
    5959#include "Tuples/Tuples.h"                  // for expandMemberTuples, expan...
     60#include "Virtual/ExpandCasts.h"            // for expandCasts
    6061
    6162using namespace std;
     
    313314                }
    314315
     316                OPTPRINT( "virtual expandCasts" ) // Must come after translateEHM
     317                Virtual::expandCasts( translationUnit );
     318
    315319                OPTPRINT("instantiateGenerics")
    316320                GenPoly::instantiateGeneric( translationUnit );
  • src/prelude/builtins.c

    r15d1cc3 re213560  
    1 // 
     1//
    22// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
    33//
    44// The contents of this file are covered under the licence agreement in the
    55// file "LICENCE" distributed with Cforall.
    6 // 
    7 // builtins.c -- 
    8 // 
     6//
     7// builtins.c --
     8//
    99// Author           : Peter A. Buhr
    1010// Created On       : Fri Jul 21 16:21:03 2017
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 10:34:20 2017
    13 // Update Count     : 13
    14 // 
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Tus Jul 25 15:33:00 2017
     13// Update Count     : 14
     14//
    1515
    1616// exception implementation
     
    1818typedef unsigned long long __cfaabi_exception_type_t;
    1919
     20#include "../libcfa/virtual.h"
    2021#include "../libcfa/exception.h"
    2122
Note: See TracChangeset for help on using the changeset viewer.