Changes in / [3e8fb3b:346a0bf]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Validate.cc
r3e8fb3b r346a0bf 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.