Changeset fac84be
- Timestamp:
- May 11, 2016, 1:15:29 PM (9 years ago)
- 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, with_gc
- Children:
- 228851d
- Parents:
- 03e5d14
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Validate.cc
r03e5d14 rfac84be 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:50:04 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Apr 13 16:39:30201611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed May 11 13:13:16 2016 13 13 // Update Count : 251 14 14 // … … 192 192 template<typename AggDecl> 193 193 void addImplicitTypedef( AggDecl * aggDecl ); 194 194 195 195 typedef std::map< std::string, std::pair< TypedefDecl *, int > > TypedefMap; 196 196 TypedefMap typedefNames; … … 715 715 } 716 716 717 if ( dwt->get_name() == "" ) { 718 // don't assign to anonymous members 719 // xxx - this is a temporary fix. Anonymous members tie into 720 // our inheritance model. I think the correct way to handle this is to 721 // cast the structure to the type of the member and let the resolver 722 // figure out whether it's valid and have a pass afterwards that fixes 723 // the assignment to use pointer arithmetic with the offset of the 724 // member, much like how generic type members are handled. 725 continue; 726 } 727 717 728 if ( isGeneric ) { 718 729 // rewrite member type in terms of the type variables on this operator … … 773 784 makeUnionFieldsAssignment( srcParam, dstParam, cloneWithParams( refType, unionParams ), back_inserter( assignDecl->get_statements()->get_kids() ) ); 774 785 if ( isGeneric ) makeUnionFieldsAssignment( srcParam, returnVal, cloneWithParams( refType, unionParams ), back_inserter( assignDecl->get_statements()->get_kids() ) ); 775 786 776 787 if ( ! isGeneric ) assignDecl->get_statements()->get_kids().push_back( new ReturnStmt( noLabels, new VariableExpr( srcParam ) ) ); 777 788 … … 1033 1044 return aggDecl; 1034 1045 } 1035 1046 1036 1047 template<typename AggDecl> 1037 1048 void EliminateTypedef::addImplicitTypedef( AggDecl * aggDecl ) {
Note: See TracChangeset
for help on using the changeset viewer.