// Invoking preprocessor // cpp -C -undef -nostdinc -x assembler-with-cpp -Ip4c/build/p4include -Ip4c/build/p4include/bmv2 random/crash_bugs/triple_nested_header.p4.txt // FrontEnd_0_P4V1::getV1ModelVersion // ParseAnnotationBodies_0_ParseAnnotations // ParseAnnotationBodies_1_ClearTypeMap // FrontEnd_1_ParseAnnotationBodies // FrontEnd_2_PrettyPrint // FrontEnd_3_ValidateParsedProgram // FrontEnd_4_CreateBuiltins // FrontEnd_5_ResolveReferences // ConstantFolding_0_DoConstantFolding // FrontEnd_6_ConstantFolding // InstantiateDirectCalls_0_ResolveReferences // InstantiateDirectCalls_1_DoInstantiateCalls // FrontEnd_7_InstantiateDirectCalls // FrontEnd_8_ResolveReferences // Deprecated_0_ResolveReferences // Deprecated_1_CheckDeprecated // FrontEnd_9_Deprecated // FrontEnd_10_CheckNamedArgs // FrontEnd_11_TypeInference // FrontEnd_12_ValidateMatchAnnotations // BindTypeVariables_0_ClearTypeMap // BindTypeVariables_1_ResolveReferences // BindTypeVariables_2_TypeInference // BindTypeVariables_3_DoBindTypeVariables // BindTypeVariables_4_ClearTypeMap // FrontEnd_13_BindTypeVariables // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // PassRepeated_0_TypeChecking // PassRepeated_1_FindTypeSpecializations // PassRepeated_2_CreateSpecializedTypes // PassRepeated_3_ClearTypeMap // DoSpecializeGenericTypes_0_PassRepeated // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // DoSpecializeGenericTypes_1_TypeChecking // DoSpecializeGenericTypes_2_ReplaceTypeUses // DoSpecializeGenericTypes_3_ClearTypeMap // SpecializeGenericTypes_0_DoSpecializeGenericTypes // SpecializeGenericTypes_1_RemoveGenericTypes // FrontEnd_14_SpecializeGenericTypes // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // DefaultArguments_0_TypeChecking // DefaultArguments_1_DoDefaultArguments // DefaultArguments_2_ClearTypeMap // DefaultArguments_3_ResolveReferences // DefaultArguments_4_TypeInference // FrontEnd_15_DefaultArguments // FrontEnd_16_ResolveReferences // FrontEnd_17_TypeInference // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // CheckCoreMethods_0_TypeChecking // CheckCoreMethods_1_DoCheckCoreMethods // FrontEnd_18_CheckCoreMethods // P4::RemoveParserIfs_0_IfInParser // P4::RemoveParserIfs_1_PassIf // FrontEnd_19_RemoveParserIfs // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // StructInitializers_0_TypeChecking // StructInitializers_1_CreateStructInitializers // StructInitializers_2_ClearTypeMap // FrontEnd_20_StructInitializers // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // SpecializeGenericFunctions_0_TypeChecking // SpecializeGenericFunctions_1_FindFunctionSpecializations // SpecializeGenericFunctions_2_SpecializeFunctions // FrontEnd_21_SpecializeGenericFunctions // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // TableKeyNames_0_TypeChecking // TableKeyNames_1_DoTableKeyNames // FrontEnd_22_TableKeyNames // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // ConstantFolding_0_TypeChecking // ConstantFolding_1_DoConstantFolding // ConstantFolding_2_ClearTypeMap // PassRepeated_0_ConstantFolding // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // P4::TypeChecking_2_ApplyTypesToExpressions // P4::TypeChecking_3_ResolveReferences // P4::StrengthReduction_0_TypeChecking // P4::StrengthReduction_1_StrengthReduction // PassRepeated_1_StrengthReduction // PassRepeated_2_Reassociation // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // UselessCasts_0_TypeChecking // UselessCasts_1_RemoveUselessCasts // PassRepeated_3_UselessCasts // P4::TypeChecking_2_ResolveReferences // P4::TypeChecking_3_TypeInference // ConstantFolding_3_TypeChecking // ConstantFolding_4_DoConstantFolding // ConstantFolding_5_ClearTypeMap // PassRepeated_4_ConstantFolding // P4::TypeChecking_4_ResolveReferences // P4::TypeChecking_5_TypeInference // P4::TypeChecking_6_ApplyTypesToExpressions // P4::TypeChecking_7_ResolveReferences // P4::StrengthReduction_2_TypeChecking // P4::StrengthReduction_3_StrengthReduction // PassRepeated_5_StrengthReduction // PassRepeated_6_Reassociation // P4::TypeChecking_2_ResolveReferences // P4::TypeChecking_3_TypeInference // UselessCasts_2_TypeChecking // UselessCasts_3_RemoveUselessCasts // PassRepeated_7_UselessCasts // FrontEnd_23_PassRepeated // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // SimplifyControlFlow_0_TypeChecking // SimplifyControlFlow_1_DoSimplifyControlFlow // FrontEnd_24_SimplifyControlFlow // FrontEnd_25_SwitchAddDefault // FrontEnd_26_FrontEndDump // PassRepeated_0_ResolveReferences // PassRepeated_1_RemoveUnusedDeclarations // PassRepeated_2_ResolveReferences // PassRepeated_3_RemoveUnusedDeclarations // RemoveAllUnusedDeclarations_0_PassRepeated // FrontEnd_27_RemoveAllUnusedDeclarations // SimplifyParsers_0_ResolveReferences // SimplifyParsers_1_DoSimplifyParsers // FrontEnd_28_SimplifyParsers // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // ResetHeaders_0_TypeChecking // ResetHeaders_1_DoResetHeaders // FrontEnd_29_ResetHeaders // UniqueNames_0_ResolveReferences // UniqueNames_1_FindSymbols // UniqueNames_2_RenameSymbols // FrontEnd_30_UniqueNames // FrontEnd_31_MoveDeclarations // FrontEnd_32_MoveInitializers // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // SideEffectOrdering_0_TypeChecking // SideEffectOrdering_1_DoSimplifyExpressions // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // SideEffectOrdering_2_TypeChecking // SideEffectOrdering_3_TableInKeys // SideEffectOrdering_4_KeySideEffect // FrontEnd_33_SideEffectOrdering // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // SimplifyControlFlow_0_TypeChecking // SimplifyControlFlow_1_DoSimplifyControlFlow // FrontEnd_34_SimplifyControlFlow // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // SimplifySwitch_0_TypeChecking // SimplifySwitch_1_DoSimplifySwitch // FrontEnd_35_SimplifySwitch // FrontEnd_36_MoveDeclarations // P4::TypeChecking_0_ResolveReferences // P4::TypeChecking_1_TypeInference // SimplifyDefUse_0_TypeChecking // In file: p4c/frontends/p4/typeMap.cpp:126 // Compiler Bug: Could not find type for (18751) .g #include header ethernet_t { bit<48> dst_addr; bit<48> src_addr; bit<16> eth_type; } struct G { ethernet_t eth; } struct H { G g; } struct Headers { ethernet_t eth_hdr; } parser p(packet_in pkt, out Headers hdr) { state start { transition parse_hdrs; } state parse_hdrs { pkt.extract(hdr.eth_hdr); transition accept; } } control ingress(inout Headers h) { H tmp = { { { 1, 1, 1 } } }; apply { tmp.g.eth.dst_addr = 1; } } parser Parser(packet_in b, out Headers hdr); control Ingress(inout Headers hdr); package top(Parser p, Ingress ig); top(p(), ingress()) main;