Changes in src/Tuples/TupleExpansion.cc [9f10c4b8:e3e16bc]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Tuples/TupleExpansion.cc
r9f10c4b8 re3e16bc 14 14 // 15 15 16 #include <iterator> 17 #include <iostream> 18 #include <cassert> 19 #include "Tuples.h" 20 #include "Common/PassVisitor.h" 21 #include "Common/ScopedMap.h" 22 #include "GenPoly/DeclMutator.h" 23 #include "InitTweak/GenInit.h" 24 #include "InitTweak/InitTweak.h" 25 #include "ResolvExpr/typeops.h" 26 #include "SymTab/Mangler.h" 27 #include "SynTree/Declaration.h" 28 #include "SynTree/Expression.h" 29 #include "SynTree/Initializer.h" 30 #include "SynTree/Mutator.h" 31 #include "SynTree/Statement.h" 32 #include "SynTree/Type.h" 16 #include <stddef.h> // for size_t 17 #include <cassert> // for assert 18 #include <list> // for list 19 20 #include "Common/PassVisitor.h" // for PassVisitor, WithDeclsToAdd, WithGu... 21 #include "Common/ScopedMap.h" // for ScopedMap 22 #include "Common/utility.h" // for CodeLocation 23 #include "GenPoly/DeclMutator.h" // for DeclMutator 24 #include "InitTweak/InitTweak.h" // for getFunction 25 #include "Parser/LinkageSpec.h" // for Spec, C, Intrinsic 26 #include "SynTree/Constant.h" // for Constant 27 #include "SynTree/Declaration.h" // for StructDecl, DeclarationWithType 28 #include "SynTree/Expression.h" // for UntypedMemberExpr, Expression, Uniq... 29 #include "SynTree/Label.h" // for operator==, Label 30 #include "SynTree/Mutator.h" // for Mutator 31 #include "SynTree/Type.h" // for Type, Type::Qualifiers, TupleType 32 #include "SynTree/Visitor.h" // for Visitor 33 34 class CompoundStmt; 35 class TypeSubstitution; 33 36 34 37 namespace Tuples { … … 165 168 // steal the already generated assignment to var from the unqExpr - this has been generated by FixInit 166 169 Expression * expr = unqExpr->get_expr(); 167 CommaExpr * commaExpr = s afe_dynamic_cast< CommaExpr * >( expr );170 CommaExpr * commaExpr = strict_dynamic_cast< CommaExpr * >( expr ); 168 171 assignUnq = commaExpr->get_arg1(); 169 172 commaExpr->set_arg1( nullptr ); … … 234 237 delete tupleExpr; 235 238 236 StructInstType * type = s afe_dynamic_cast< StructInstType * >( tuple->get_result() );239 StructInstType * type = strict_dynamic_cast< StructInstType * >( tuple->get_result() ); 237 240 StructDecl * structDecl = type->get_baseStruct(); 238 241 assert( structDecl->get_members().size() > idx ); 239 242 Declaration * member = *std::next(structDecl->get_members().begin(), idx); 240 MemberExpr * memExpr = new MemberExpr( s afe_dynamic_cast< DeclarationWithType * >( member ), tuple );243 MemberExpr * memExpr = new MemberExpr( strict_dynamic_cast< DeclarationWithType * >( member ), tuple ); 241 244 memExpr->set_env( env ); 242 245 return memExpr;
Note: See TracChangeset
for help on using the changeset viewer.