Lines Matching refs:dwarf
46 CU.addUInt(getActiveDIE(), dwarf::DW_FORM_data1, Op); in emitOp()
50 CU.addSInt(getActiveDIE(), dwarf::DW_FORM_sdata, Value); in emitSigned()
54 CU.addUInt(getActiveDIE(), dwarf::DW_FORM_udata, Value); in emitUnsigned()
58 CU.addUInt(getActiveDIE(), dwarf::DW_FORM_data1, Value); in emitData1()
83 DwarfUnit::DwarfUnit(dwarf::Tag UnitTag, const DICompileUnit *Node, in DwarfUnit()
92 : DwarfUnit(dwarf::DW_TAG_type_unit, CU.getCUNode(), A, DW, DWU, UniqueID), in DwarfTypeUnit()
108 case dwarf::DW_LANG_C: in getDefaultLowerBound()
109 case dwarf::DW_LANG_C89: in getDefaultLowerBound()
110 case dwarf::DW_LANG_C_plus_plus: in getDefaultLowerBound()
113 case dwarf::DW_LANG_Fortran77: in getDefaultLowerBound()
114 case dwarf::DW_LANG_Fortran90: in getDefaultLowerBound()
118 case dwarf::DW_LANG_C99: in getDefaultLowerBound()
119 case dwarf::DW_LANG_ObjC: in getDefaultLowerBound()
120 case dwarf::DW_LANG_ObjC_plus_plus: in getDefaultLowerBound()
125 case dwarf::DW_LANG_Fortran95: in getDefaultLowerBound()
131 case dwarf::DW_LANG_D: in getDefaultLowerBound()
132 case dwarf::DW_LANG_Java: in getDefaultLowerBound()
133 case dwarf::DW_LANG_Python: in getDefaultLowerBound()
134 case dwarf::DW_LANG_UPC: in getDefaultLowerBound()
139 case dwarf::DW_LANG_Ada83: in getDefaultLowerBound()
140 case dwarf::DW_LANG_Ada95: in getDefaultLowerBound()
141 case dwarf::DW_LANG_Cobol74: in getDefaultLowerBound()
142 case dwarf::DW_LANG_Cobol85: in getDefaultLowerBound()
143 case dwarf::DW_LANG_Modula2: in getDefaultLowerBound()
144 case dwarf::DW_LANG_Pascal83: in getDefaultLowerBound()
145 case dwarf::DW_LANG_PLI: in getDefaultLowerBound()
151 case dwarf::DW_LANG_BLISS: in getDefaultLowerBound()
152 case dwarf::DW_LANG_C11: in getDefaultLowerBound()
153 case dwarf::DW_LANG_C_plus_plus_03: in getDefaultLowerBound()
154 case dwarf::DW_LANG_C_plus_plus_11: in getDefaultLowerBound()
155 case dwarf::DW_LANG_C_plus_plus_14: in getDefaultLowerBound()
156 case dwarf::DW_LANG_Dylan: in getDefaultLowerBound()
157 case dwarf::DW_LANG_Go: in getDefaultLowerBound()
158 case dwarf::DW_LANG_Haskell: in getDefaultLowerBound()
159 case dwarf::DW_LANG_OCaml: in getDefaultLowerBound()
160 case dwarf::DW_LANG_OpenCL: in getDefaultLowerBound()
161 case dwarf::DW_LANG_RenderScript: in getDefaultLowerBound()
162 case dwarf::DW_LANG_Rust: in getDefaultLowerBound()
163 case dwarf::DW_LANG_Swift: in getDefaultLowerBound()
168 case dwarf::DW_LANG_Fortran03: in getDefaultLowerBound()
169 case dwarf::DW_LANG_Fortran08: in getDefaultLowerBound()
170 case dwarf::DW_LANG_Julia: in getDefaultLowerBound()
171 case dwarf::DW_LANG_Modula3: in getDefaultLowerBound()
214 void DwarfUnit::addFlag(DIE &Die, dwarf::Attribute Attribute) { in addFlag()
216 addAttribute(Die, Attribute, dwarf::DW_FORM_flag_present, DIEInteger(1)); in addFlag()
218 addAttribute(Die, Attribute, dwarf::DW_FORM_flag, DIEInteger(1)); in addFlag()
221 void DwarfUnit::addUInt(DIEValueList &Die, dwarf::Attribute Attribute, in addUInt()
222 std::optional<dwarf::Form> Form, uint64_t Integer) { in addUInt()
225 assert(Form != dwarf::DW_FORM_implicit_const && in addUInt()
230 void DwarfUnit::addUInt(DIEValueList &Block, dwarf::Form Form, in addUInt()
232 addUInt(Block, (dwarf::Attribute)0, Form, Integer); in addUInt()
235 void DwarfUnit::addSInt(DIEValueList &Die, dwarf::Attribute Attribute, in addSInt()
236 std::optional<dwarf::Form> Form, int64_t Integer) { in addSInt()
242 void DwarfUnit::addSInt(DIELoc &Die, std::optional<dwarf::Form> Form, in addSInt()
244 addSInt(Die, (dwarf::Attribute)0, Form, Integer); in addSInt()
247 void DwarfUnit::addString(DIE &Die, dwarf::Attribute Attribute, in addString()
253 addAttribute(Die, Attribute, dwarf::DW_FORM_string, in addString()
258 dwarf::Form IxForm = in addString()
259 isDwoUnit() ? dwarf::DW_FORM_GNU_str_index : dwarf::DW_FORM_strp; in addString()
262 useSegmentedStringOffsetsTable() || IxForm == dwarf::DW_FORM_GNU_str_index in addString()
268 IxForm = dwarf::DW_FORM_strx1; in addString()
271 IxForm = dwarf::DW_FORM_strx4; in addString()
273 IxForm = dwarf::DW_FORM_strx3; in addString()
275 IxForm = dwarf::DW_FORM_strx2; in addString()
280 void DwarfUnit::addLabel(DIEValueList &Die, dwarf::Attribute Attribute, in addLabel()
281 dwarf::Form Form, const MCSymbol *Label) { in addLabel()
285 void DwarfUnit::addLabel(DIELoc &Die, dwarf::Form Form, const MCSymbol *Label) { in addLabel()
286 addLabel(Die, (dwarf::Attribute)0, Form, Label); in addLabel()
289 void DwarfUnit::addSectionOffset(DIE &Die, dwarf::Attribute Attribute, in addSectionOffset()
300 addSectionOffset(getUnitDie(), dwarf::DW_AT_stmt_list, 0); in getOrCreateSourceID()
318 addUInt(Die, dwarf::DW_FORM_data1, dwarf::DW_OP_addrx); in addPoolOpAddress()
319 addUInt(Die, dwarf::DW_FORM_addrx, Index); in addPoolOpAddress()
321 addUInt(Die, dwarf::DW_FORM_data1, dwarf::DW_OP_GNU_addr_index); in addPoolOpAddress()
322 addUInt(Die, dwarf::DW_FORM_GNU_addr_index, Index); in addPoolOpAddress()
326 addUInt(Die, dwarf::DW_FORM_data1, dwarf::DW_OP_const4u); in addPoolOpAddress()
327 addLabelDelta(Die, (dwarf::Attribute)0, Label, Base); in addPoolOpAddress()
328 addUInt(Die, dwarf::DW_FORM_data1, dwarf::DW_OP_plus); in addPoolOpAddress()
343 addUInt(Die, dwarf::DW_FORM_data1, dwarf::DW_OP_addr); in addOpAddress()
344 addLabel(Die, dwarf::DW_FORM_addr, Sym); in addOpAddress()
347 void DwarfUnit::addLabelDelta(DIEValueList &Die, dwarf::Attribute Attribute, in addLabelDelta()
349 addAttribute(Die, Attribute, dwarf::DW_FORM_data4, in addLabelDelta()
353 void DwarfUnit::addDIEEntry(DIE &Die, dwarf::Attribute Attribute, DIE &Entry) { in addDIEEntry()
362 addFlag(Die, dwarf::DW_AT_declaration); in addDIETypeSignature()
364 addAttribute(Die, dwarf::DW_AT_signature, dwarf::DW_FORM_ref_sig8, in addDIETypeSignature()
368 void DwarfUnit::addDIEEntry(DIE &Die, dwarf::Attribute Attribute, in addDIEEntry()
380 EntryCU == CU ? dwarf::DW_FORM_ref4 : dwarf::DW_FORM_ref_addr, in addDIEEntry()
384 DIE &DwarfUnit::createAndAddDIE(dwarf::Tag Tag, DIE &Parent, const DINode *N) { in createAndAddDIE()
391 void DwarfUnit::addBlock(DIE &Die, dwarf::Attribute Attribute, DIELoc *Loc) { in addBlock()
397 void DwarfUnit::addBlock(DIE &Die, dwarf::Attribute Attribute, dwarf::Form Form, in addBlock()
404 void DwarfUnit::addBlock(DIE &Die, dwarf::Attribute Attribute, in addBlock()
414 addUInt(Die, dwarf::DW_AT_decl_file, std::nullopt, FileID); in addSourceLine()
415 addUInt(Die, dwarf::DW_AT_decl_line, std::nullopt, Line); in addSourceLine()
471 addUInt(Die, dwarf::DW_AT_const_value, in addConstantValue()
472 Unsigned ? dwarf::DW_FORM_udata : dwarf::DW_FORM_sdata, Val); in addConstantValue()
502 addUInt(*Block, dwarf::DW_FORM_data1, c); in addConstantValue()
505 addBlock(Die, dwarf::DW_AT_const_value, Block); in addConstantValue()
511 DD->getDwarfVersion() >= 4 ? dwarf::DW_AT_linkage_name in addLinkageName()
512 : dwarf::DW_AT_MIPS_linkage_name, in addLinkageName()
529 DIE &TT = createAndAddDIE(dwarf::DW_TAG_thrown_type, Die); in addThrownTypes()
536 addUInt(Die, dwarf::DW_AT_accessibility, dwarf::DW_FORM_data1, in addAccess()
537 dwarf::DW_ACCESS_protected); in addAccess()
539 addUInt(Die, dwarf::DW_AT_accessibility, dwarf::DW_FORM_data1, in addAccess()
540 dwarf::DW_ACCESS_private); in addAccess()
542 addUInt(Die, dwarf::DW_AT_accessibility, dwarf::DW_FORM_data1, in addAccess()
543 dwarf::DW_ACCESS_public); in addAccess()
619 if (Ty->getTag() == dwarf::DW_TAG_restrict_type && DD->getDwarfVersion() <= 2) in getOrCreateTypeDIE()
623 if (Ty->getTag() == dwarf::DW_TAG_atomic_type && DD->getDwarfVersion() < 5) in getOrCreateTypeDIE()
654 unsigned Flags = IsImplementation ? dwarf::DW_FLAG_type_implementation : 0; in updateAcceleratorTables()
669 dwarf::Attribute Attribute) { in addType()
679 if (!dwarf::isCPlusPlus((dwarf::SourceLanguage)getLanguage())) in getParentContextString()
713 addString(Buffer, dwarf::DW_AT_name, Name); in constructTypeDIE()
716 if (BTy->getTag() == dwarf::DW_TAG_unspecified_type) in constructTypeDIE()
719 if (BTy->getTag() != dwarf::DW_TAG_string_type) in constructTypeDIE()
720 addUInt(Buffer, dwarf::DW_AT_encoding, dwarf::DW_FORM_data1, in constructTypeDIE()
724 addUInt(Buffer, dwarf::DW_AT_byte_size, std::nullopt, Size); in constructTypeDIE()
727 addUInt(Buffer, dwarf::DW_AT_endianity, std::nullopt, dwarf::DW_END_big); in constructTypeDIE()
729 addUInt(Buffer, dwarf::DW_AT_endianity, std::nullopt, dwarf::DW_END_little); in constructTypeDIE()
737 addString(Buffer, dwarf::DW_AT_name, Name); in constructTypeDIE()
741 addDIEEntry(Buffer, dwarf::DW_AT_string_length, *VarDIE); in constructTypeDIE()
750 addBlock(Buffer, dwarf::DW_AT_string_length, DwarfExpr.finalize()); in constructTypeDIE()
753 addUInt(Buffer, dwarf::DW_AT_byte_size, std::nullopt, Size); in constructTypeDIE()
763 addBlock(Buffer, dwarf::DW_AT_data_location, DwarfExpr.finalize()); in constructTypeDIE()
768 addUInt(Buffer, dwarf::DW_AT_encoding, dwarf::DW_FORM_data1, in constructTypeDIE()
786 addString(Buffer, dwarf::DW_AT_name, Name); in constructTypeDIE()
792 if (Tag == dwarf::DW_TAG_typedef && DD->getDwarfVersion() >= 5) { in constructTypeDIE()
795 addUInt(Buffer, dwarf::DW_AT_alignment, dwarf::DW_FORM_udata, in constructTypeDIE()
800 if (Size && Tag != dwarf::DW_TAG_pointer_type in constructTypeDIE()
801 && Tag != dwarf::DW_TAG_ptr_to_member_type in constructTypeDIE()
802 && Tag != dwarf::DW_TAG_reference_type in constructTypeDIE()
803 && Tag != dwarf::DW_TAG_rvalue_reference_type) in constructTypeDIE()
804 addUInt(Buffer, dwarf::DW_AT_byte_size, std::nullopt, Size); in constructTypeDIE()
806 if (Tag == dwarf::DW_TAG_ptr_to_member_type) in constructTypeDIE()
807 addDIEEntry(Buffer, dwarf::DW_AT_containing_type, in constructTypeDIE()
820 addUInt(Buffer, dwarf::DW_AT_address_class, dwarf::DW_FORM_data4, in constructTypeDIE()
824 if (Tag == dwarf::DW_TAG_template_alias) in constructTypeDIE()
828 addUInt(Buffer, dwarf::DW_AT_LLVM_ptrauth_key, dwarf::DW_FORM_data1, in constructTypeDIE()
831 addFlag(Buffer, dwarf::DW_AT_LLVM_ptrauth_address_discriminated); in constructTypeDIE()
832 addUInt(Buffer, dwarf::DW_AT_LLVM_ptrauth_extra_discriminator, in constructTypeDIE()
833 dwarf::DW_FORM_data2, PtrAuthData->extraDiscriminator()); in constructTypeDIE()
835 addFlag(Buffer, dwarf::DW_AT_LLVM_ptrauth_isa_pointer); in constructTypeDIE()
837 addFlag(Buffer, dwarf::DW_AT_LLVM_ptrauth_authenticates_null_values); in constructTypeDIE()
846 createAndAddDIE(dwarf::DW_TAG_unspecified_parameters, Buffer); in constructSubprogramArguments()
848 DIE &Arg = createAndAddDIE(dwarf::DW_TAG_formal_parameter, Buffer); in constructSubprogramArguments()
851 addFlag(Arg, dwarf::DW_AT_artificial); in constructSubprogramArguments()
871 if (isPrototyped && dwarf::isC((dwarf::SourceLanguage)getLanguage())) in constructTypeDIE()
872 addFlag(Buffer, dwarf::DW_AT_prototyped); in constructTypeDIE()
875 if (CTy->getCC() && CTy->getCC() != dwarf::DW_CC_normal) in constructTypeDIE()
876 addUInt(Buffer, dwarf::DW_AT_calling_convention, dwarf::DW_FORM_data1, in constructTypeDIE()
880 addFlag(Buffer, dwarf::DW_AT_reference); in constructTypeDIE()
883 addFlag(Buffer, dwarf::DW_AT_rvalue_reference); in constructTypeDIE()
895 DIE &AnnotationDie = createAndAddDIE(dwarf::DW_TAG_LLVM_annotation, Buffer); in addAnnotation()
896 addString(AnnotationDie, dwarf::DW_AT_name, Name->getString()); in addAnnotation()
898 addString(AnnotationDie, dwarf::DW_AT_const_value, Data->getString()); in addAnnotation()
915 case dwarf::DW_TAG_array_type: in constructTypeDIE()
918 case dwarf::DW_TAG_enumeration_type: in constructTypeDIE()
921 case dwarf::DW_TAG_variant_part: in constructTypeDIE()
922 case dwarf::DW_TAG_structure_type: in constructTypeDIE()
923 case dwarf::DW_TAG_union_type: in constructTypeDIE()
924 case dwarf::DW_TAG_class_type: in constructTypeDIE()
925 case dwarf::DW_TAG_namelist: { in constructTypeDIE()
928 if (Tag == dwarf::DW_TAG_variant_part) { in constructTypeDIE()
936 addDIEEntry(Buffer, dwarf::DW_AT_discr, DiscMember); in constructTypeDIE()
941 if (Tag == dwarf::DW_TAG_class_type || in constructTypeDIE()
942 Tag == dwarf::DW_TAG_structure_type || Tag == dwarf::DW_TAG_union_type) in constructTypeDIE()
953 if (DDTy->getTag() == dwarf::DW_TAG_friend) { in constructTypeDIE()
954 DIE &ElemDie = createAndAddDIE(dwarf::DW_TAG_friend, Buffer); in constructTypeDIE()
955 addType(ElemDie, DDTy->getBaseType(), dwarf::DW_AT_friend); in constructTypeDIE()
958 } else if (Tag == dwarf::DW_TAG_variant_part) { in constructTypeDIE()
961 DIE &Variant = createAndAddDIE(dwarf::DW_TAG_variant, Buffer); in constructTypeDIE()
965 addUInt(Variant, dwarf::DW_AT_discr_value, std::nullopt, in constructTypeDIE()
968 addSInt(Variant, dwarf::DW_AT_discr_value, std::nullopt, in constructTypeDIE()
978 addString(ElemDie, dwarf::DW_AT_APPLE_property_name, PropertyName); in constructTypeDIE()
984 addString(ElemDie, dwarf::DW_AT_APPLE_property_getter, GetterName); in constructTypeDIE()
987 addString(ElemDie, dwarf::DW_AT_APPLE_property_setter, SetterName); in constructTypeDIE()
989 addUInt(ElemDie, dwarf::DW_AT_APPLE_property_attribute, std::nullopt, in constructTypeDIE()
992 if (Composite->getTag() == dwarf::DW_TAG_variant_part) { in constructTypeDIE()
996 } else if (Tag == dwarf::DW_TAG_namelist) { in constructTypeDIE()
1000 DIE &ItemDie = createAndAddDIE(dwarf::DW_TAG_namelist_item, Buffer); in constructTypeDIE()
1001 addDIEEntry(ItemDie, dwarf::DW_AT_namelist_item, *VarDIE); in constructTypeDIE()
1007 addFlag(Buffer, dwarf::DW_AT_APPLE_block); in constructTypeDIE()
1010 addFlag(Buffer, dwarf::DW_AT_export_symbols); in constructTypeDIE()
1017 addDIEEntry(Buffer, dwarf::DW_AT_containing_type, in constructTypeDIE()
1021 addFlag(Buffer, dwarf::DW_AT_APPLE_objc_complete_type); in constructTypeDIE()
1028 CC = dwarf::DW_CC_pass_by_value; in constructTypeDIE()
1030 CC = dwarf::DW_CC_pass_by_reference; in constructTypeDIE()
1032 addUInt(Buffer, dwarf::DW_AT_calling_convention, dwarf::DW_FORM_data1, in constructTypeDIE()
1043 addString(Buffer, dwarf::DW_AT_name, Name); in constructTypeDIE()
1047 if (Tag == dwarf::DW_TAG_enumeration_type || in constructTypeDIE()
1048 Tag == dwarf::DW_TAG_class_type || Tag == dwarf::DW_TAG_structure_type || in constructTypeDIE()
1049 Tag == dwarf::DW_TAG_union_type) { in constructTypeDIE()
1054 (!CTy->isForwardDecl() || Tag == dwarf::DW_TAG_enumeration_type)) in constructTypeDIE()
1055 addUInt(Buffer, dwarf::DW_AT_byte_size, std::nullopt, Size); in constructTypeDIE()
1058 addUInt(Buffer, dwarf::DW_AT_byte_size, std::nullopt, 0); in constructTypeDIE()
1062 addFlag(Buffer, dwarf::DW_AT_declaration); in constructTypeDIE()
1074 addUInt(Buffer, dwarf::DW_AT_APPLE_runtime_class, dwarf::DW_FORM_data1, in constructTypeDIE()
1079 addUInt(Buffer, dwarf::DW_AT_alignment, dwarf::DW_FORM_udata, in constructTypeDIE()
1087 createAndAddDIE(dwarf::DW_TAG_template_type_parameter, Buffer); in constructTemplateTypeParameterDIE()
1092 addString(ParamDIE, dwarf::DW_AT_name, TP->getName()); in constructTemplateTypeParameterDIE()
1094 addFlag(ParamDIE, dwarf::DW_AT_default_value); in constructTemplateTypeParameterDIE()
1103 if (VP->getTag() == dwarf::DW_TAG_template_value_parameter) in constructTemplateValueParameterDIE()
1106 addString(ParamDIE, dwarf::DW_AT_name, VP->getName()); in constructTemplateValueParameterDIE()
1108 addFlag(ParamDIE, dwarf::DW_AT_default_value); in constructTemplateValueParameterDIE()
1122 addUInt(*Loc, dwarf::DW_FORM_data1, dwarf::DW_OP_stack_value); in constructTemplateValueParameterDIE()
1123 addBlock(ParamDIE, dwarf::DW_AT_location, Loc); in constructTemplateValueParameterDIE()
1125 } else if (VP->getTag() == dwarf::DW_TAG_GNU_template_template_param) { in constructTemplateValueParameterDIE()
1127 addString(ParamDIE, dwarf::DW_AT_GNU_template_name, in constructTemplateValueParameterDIE()
1129 } else if (VP->getTag() == dwarf::DW_TAG_GNU_template_parameter_pack) { in constructTemplateValueParameterDIE()
1142 DIE &NDie = createAndAddDIE(dwarf::DW_TAG_namespace, *ContextDIE, NS); in getOrCreateNameSpace()
1146 addString(NDie, dwarf::DW_AT_name, NS->getName()); in getOrCreateNameSpace()
1152 addFlag(NDie, dwarf::DW_AT_export_symbols); in getOrCreateNameSpace()
1163 DIE &MDie = createAndAddDIE(dwarf::DW_TAG_module, *ContextDIE, M); in getOrCreateModule()
1166 addString(MDie, dwarf::DW_AT_name, M->getName()); in getOrCreateModule()
1170 addString(MDie, dwarf::DW_AT_LLVM_config_macros, in getOrCreateModule()
1173 addString(MDie, dwarf::DW_AT_LLVM_include_path, M->getIncludePath()); in getOrCreateModule()
1175 addString(MDie, dwarf::DW_AT_LLVM_apinotes, M->getAPINotesFile()); in getOrCreateModule()
1177 addUInt(MDie, dwarf::DW_AT_decl_file, std::nullopt, in getOrCreateModule()
1180 addUInt(MDie, dwarf::DW_AT_decl_line, std::nullopt, M->getLineNo()); in getOrCreateModule()
1182 addFlag(MDie, dwarf::DW_AT_declaration); in getOrCreateModule()
1207 DIE &SPDie = createAndAddDIE(dwarf::DW_TAG_subprogram, *ContextDIE, SP); in getOrCreateSubprogramDIE()
1243 addUInt(SPDie, dwarf::DW_AT_decl_file, std::nullopt, DefID); in applySubprogramDefinitionAttributes()
1246 addUInt(SPDie, dwarf::DW_AT_decl_line, std::nullopt, SP->getLine()); in applySubprogramDefinitionAttributes()
1268 addDIEEntry(SPDie, dwarf::DW_AT_specification, *DeclDie); in applySubprogramDefinitionAttributes()
1284 addString(SPDie, dwarf::DW_AT_name, SP->getName()); in applySubprogramAttributes()
1297 if (SP->isPrototyped() && dwarf::isC((dwarf::SourceLanguage)getLanguage())) in applySubprogramAttributes()
1298 addFlag(SPDie, dwarf::DW_AT_prototyped); in applySubprogramAttributes()
1301 addFlag(SPDie, dwarf::DW_AT_APPLE_objc_direct); in applySubprogramAttributes()
1311 if (CC && CC != dwarf::DW_CC_normal) in applySubprogramAttributes()
1312 addUInt(SPDie, dwarf::DW_AT_calling_convention, dwarf::DW_FORM_data1, CC); in applySubprogramAttributes()
1322 addUInt(SPDie, dwarf::DW_AT_virtuality, dwarf::DW_FORM_data1, VK); in applySubprogramAttributes()
1325 addUInt(*Block, dwarf::DW_FORM_data1, dwarf::DW_OP_constu); in applySubprogramAttributes()
1326 addUInt(*Block, dwarf::DW_FORM_udata, SP->getVirtualIndex()); in applySubprogramAttributes()
1327 addBlock(SPDie, dwarf::DW_AT_vtable_elem_location, Block); in applySubprogramAttributes()
1333 addFlag(SPDie, dwarf::DW_AT_declaration); in applySubprogramAttributes()
1343 addFlag(SPDie, dwarf::DW_AT_artificial); in applySubprogramAttributes()
1346 addFlag(SPDie, dwarf::DW_AT_external); in applySubprogramAttributes()
1350 addFlag(SPDie, dwarf::DW_AT_APPLE_optimized); in applySubprogramAttributes()
1353 addUInt(SPDie, dwarf::DW_AT_APPLE_isa, dwarf::DW_FORM_flag, isa); in applySubprogramAttributes()
1357 addFlag(SPDie, dwarf::DW_AT_reference); in applySubprogramAttributes()
1360 addFlag(SPDie, dwarf::DW_AT_rvalue_reference); in applySubprogramAttributes()
1363 addFlag(SPDie, dwarf::DW_AT_noreturn); in applySubprogramAttributes()
1368 addFlag(SPDie, dwarf::DW_AT_explicit); in applySubprogramAttributes()
1371 addFlag(SPDie, dwarf::DW_AT_main_subprogram); in applySubprogramAttributes()
1373 addFlag(SPDie, dwarf::DW_AT_pure); in applySubprogramAttributes()
1375 addFlag(SPDie, dwarf::DW_AT_elemental); in applySubprogramAttributes()
1377 addFlag(SPDie, dwarf::DW_AT_recursive); in applySubprogramAttributes()
1380 addString(SPDie, dwarf::DW_AT_trampoline, SP->getTargetFuncName()); in applySubprogramAttributes()
1383 addFlag(SPDie, dwarf::DW_AT_deleted); in applySubprogramAttributes()
1388 DIE &DW_Subrange = createAndAddDIE(dwarf::DW_TAG_subrange_type, Buffer); in constructSubrangeDIE()
1389 addDIEEntry(DW_Subrange, dwarf::DW_AT_type, *IndexTy); in constructSubrangeDIE()
1397 auto AddBoundTypeEntry = [&](dwarf::Attribute Attr, in constructSubrangeDIE()
1409 if (Attr == dwarf::DW_AT_count) { in constructSubrangeDIE()
1412 } else if (Attr != dwarf::DW_AT_lower_bound || DefaultLowerBound == -1 || in constructSubrangeDIE()
1414 addSInt(DW_Subrange, Attr, dwarf::DW_FORM_sdata, BI->getSExtValue()); in constructSubrangeDIE()
1418 AddBoundTypeEntry(dwarf::DW_AT_lower_bound, SR->getLowerBound()); in constructSubrangeDIE()
1420 AddBoundTypeEntry(dwarf::DW_AT_count, SR->getCount()); in constructSubrangeDIE()
1422 AddBoundTypeEntry(dwarf::DW_AT_upper_bound, SR->getUpperBound()); in constructSubrangeDIE()
1424 AddBoundTypeEntry(dwarf::DW_AT_byte_stride, SR->getStride()); in constructSubrangeDIE()
1431 createAndAddDIE(dwarf::DW_TAG_generic_subrange, Buffer); in constructGenericSubrangeDIE()
1432 addDIEEntry(DwGenericSubrange, dwarf::DW_AT_type, *IndexTy); in constructGenericSubrangeDIE()
1436 auto AddBoundTypeEntry = [&](dwarf::Attribute Attr, in constructGenericSubrangeDIE()
1445 if (Attr != dwarf::DW_AT_lower_bound || DefaultLowerBound == -1 || in constructGenericSubrangeDIE()
1447 addSInt(DwGenericSubrange, Attr, dwarf::DW_FORM_sdata, in constructGenericSubrangeDIE()
1459 AddBoundTypeEntry(dwarf::DW_AT_lower_bound, GSR->getLowerBound()); in constructGenericSubrangeDIE()
1460 AddBoundTypeEntry(dwarf::DW_AT_count, GSR->getCount()); in constructGenericSubrangeDIE()
1461 AddBoundTypeEntry(dwarf::DW_AT_upper_bound, GSR->getUpperBound()); in constructGenericSubrangeDIE()
1462 AddBoundTypeEntry(dwarf::DW_AT_byte_stride, GSR->getStride()); in constructGenericSubrangeDIE()
1469 IndexTyDie = &createAndAddDIE(dwarf::DW_TAG_base_type, getUnitDie()); in getIndexTyDie()
1471 addString(*IndexTyDie, dwarf::DW_AT_name, Name); in getIndexTyDie()
1472 addUInt(*IndexTyDie, dwarf::DW_AT_byte_size, std::nullopt, sizeof(int64_t)); in getIndexTyDie()
1473 addUInt(*IndexTyDie, dwarf::DW_AT_encoding, dwarf::DW_FORM_data1, in getIndexTyDie()
1474 dwarf::getArrayIndexTypeEncoding( in getIndexTyDie()
1475 (dwarf::SourceLanguage)getLanguage())); in getIndexTyDie()
1496 Elements[0]->getTag() == dwarf::DW_TAG_subrange_type && in hasVectorBeenPadded()
1512 addFlag(Buffer, dwarf::DW_AT_GNU_vector); in constructArrayTypeDIE()
1514 addUInt(Buffer, dwarf::DW_AT_byte_size, std::nullopt, in constructArrayTypeDIE()
1520 addDIEEntry(Buffer, dwarf::DW_AT_data_location, *VarDIE); in constructArrayTypeDIE()
1526 addBlock(Buffer, dwarf::DW_AT_data_location, DwarfExpr.finalize()); in constructArrayTypeDIE()
1531 addDIEEntry(Buffer, dwarf::DW_AT_associated, *VarDIE); in constructArrayTypeDIE()
1537 addBlock(Buffer, dwarf::DW_AT_associated, DwarfExpr.finalize()); in constructArrayTypeDIE()
1542 addDIEEntry(Buffer, dwarf::DW_AT_allocated, *VarDIE); in constructArrayTypeDIE()
1548 addBlock(Buffer, dwarf::DW_AT_allocated, DwarfExpr.finalize()); in constructArrayTypeDIE()
1552 addSInt(Buffer, dwarf::DW_AT_rank, dwarf::DW_FORM_sdata, in constructArrayTypeDIE()
1559 addBlock(Buffer, dwarf::DW_AT_rank, DwarfExpr.finalize()); in constructArrayTypeDIE()
1575 if (Element->getTag() == dwarf::DW_TAG_subrange_type) in constructArrayTypeDIE()
1577 else if (Element->getTag() == dwarf::DW_TAG_generic_subrange) in constructArrayTypeDIE()
1591 addFlag(Buffer, dwarf::DW_AT_enum_class); in constructEnumTypeDIE()
1603 DIE &Enumerator = createAndAddDIE(dwarf::DW_TAG_enumerator, Buffer); in constructEnumTypeDIE()
1605 addString(Enumerator, dwarf::DW_AT_name, Name); in constructEnumTypeDIE()
1622 addDIEEntry(SPDie, dwarf::DW_AT_containing_type, *NDie); in constructContainingTypeDIEs()
1630 addString(MemberDie, dwarf::DW_AT_name, Name); in constructMemberDIE()
1639 if (DT->getTag() == dwarf::DW_TAG_inheritance && DT->isVirtual()) { in constructMemberDIE()
1646 addUInt(*VBaseLocationDie, dwarf::DW_FORM_data1, dwarf::DW_OP_dup); in constructMemberDIE()
1647 addUInt(*VBaseLocationDie, dwarf::DW_FORM_data1, dwarf::DW_OP_deref); in constructMemberDIE()
1648 addUInt(*VBaseLocationDie, dwarf::DW_FORM_data1, dwarf::DW_OP_constu); in constructMemberDIE()
1649 addUInt(*VBaseLocationDie, dwarf::DW_FORM_udata, DT->getOffsetInBits()); in constructMemberDIE()
1650 addUInt(*VBaseLocationDie, dwarf::DW_FORM_data1, dwarf::DW_OP_minus); in constructMemberDIE()
1651 addUInt(*VBaseLocationDie, dwarf::DW_FORM_data1, dwarf::DW_OP_deref); in constructMemberDIE()
1652 addUInt(*VBaseLocationDie, dwarf::DW_FORM_data1, dwarf::DW_OP_plus); in constructMemberDIE()
1654 addBlock(MemberDie, dwarf::DW_AT_data_member_location, VBaseLocationDie); in constructMemberDIE()
1665 addUInt(MemberDie, dwarf::DW_AT_byte_size, std::nullopt, FieldSize / 8); in constructMemberDIE()
1666 addUInt(MemberDie, dwarf::DW_AT_bit_size, std::nullopt, Size); in constructMemberDIE()
1691 addSInt(MemberDie, dwarf::DW_AT_bit_offset, dwarf::DW_FORM_sdata, in constructMemberDIE()
1694 addUInt(MemberDie, dwarf::DW_AT_bit_offset, std::nullopt, in constructMemberDIE()
1698 addUInt(MemberDie, dwarf::DW_AT_data_bit_offset, std::nullopt, Offset); in constructMemberDIE()
1704 addUInt(MemberDie, dwarf::DW_AT_alignment, dwarf::DW_FORM_udata, in constructMemberDIE()
1710 addUInt(*MemLocationDie, dwarf::DW_FORM_data1, dwarf::DW_OP_plus_uconst); in constructMemberDIE()
1711 addUInt(*MemLocationDie, dwarf::DW_FORM_udata, OffsetInBytes); in constructMemberDIE()
1712 addBlock(MemberDie, dwarf::DW_AT_data_member_location, MemLocationDie); in constructMemberDIE()
1719 addUInt(MemberDie, dwarf::DW_AT_data_member_location, in constructMemberDIE()
1720 dwarf::DW_FORM_udata, OffsetInBytes); in constructMemberDIE()
1722 addUInt(MemberDie, dwarf::DW_AT_data_member_location, std::nullopt, in constructMemberDIE()
1730 addUInt(MemberDie, dwarf::DW_AT_virtuality, dwarf::DW_FORM_data1, in constructMemberDIE()
1731 dwarf::DW_VIRTUALITY_virtual); in constructMemberDIE()
1736 addAttribute(MemberDie, dwarf::DW_AT_APPLE_property, in constructMemberDIE()
1737 dwarf::DW_FORM_ref4, DIEEntry(*PDie)); in constructMemberDIE()
1740 addFlag(MemberDie, dwarf::DW_AT_artificial); in constructMemberDIE()
1752 assert(dwarf::isType(ContextDIE->getTag()) && in getOrCreateStaticMemberDIE()
1762 addString(StaticMemberDIE, dwarf::DW_AT_name, DT->getName()); in getOrCreateStaticMemberDIE()
1765 addFlag(StaticMemberDIE, dwarf::DW_AT_external); in getOrCreateStaticMemberDIE()
1766 addFlag(StaticMemberDIE, dwarf::DW_AT_declaration); in getOrCreateStaticMemberDIE()
1778 addUInt(StaticMemberDIE, dwarf::DW_AT_alignment, dwarf::DW_FORM_udata, in getOrCreateStaticMemberDIE()
1784 void DwarfUnit::emitCommonHeader(bool UseOffsets, dwarf::UnitType UT) { in emitCommonHeader()
1828 DD->useSplitDwarf() ? dwarf::DW_UT_split_type in emitHeader()
1829 : dwarf::DW_UT_type); in emitHeader()
1837 void DwarfUnit::addSectionDelta(DIE &Die, dwarf::Attribute Attribute, in addSectionDelta()
1843 void DwarfUnit::addSectionLabel(DIE &Die, dwarf::Attribute Attribute, in addSectionLabel()
1877 addSectionLabel(getUnitDie(), dwarf::DW_AT_str_offsets_base, in addStringOffsetsStart()
1886 addSectionLabel(getUnitDie(), dwarf::DW_AT_rnglists_base, in addRnglistsBase()