; ModuleID = '/home/firefox/firefox/mozilla-unified/widget/LSBUtils.cpp' source_filename = "/home/firefox/firefox/mozilla-unified/widget/LSBUtils.cpp" target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-pc-linux-gnu" %class.nsTSubstring = type { %"class.mozilla::detail::nsTStringRepr" } %"class.mozilla::detail::nsTStringRepr" = type { i8*, i32, i16, i16 } %"class.std::vector" = type { %"struct.std::_Vector_base" } %"struct.std::_Vector_base" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl" } %"struct.std::_Vector_base, std::allocator > >::_Vector_impl" = type { %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"* } %"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string, std::allocator >::_Alloc_hider", i64, %union.anon } %"struct.std::__cxx11::basic_string, std::allocator >::_Alloc_hider" = type { i8* } %union.anon = type { i64, [8 x i8] } %"class.std::allocator.0" = type { i8 } %"struct.base::LaunchOptions" = type { i8, %"class.std::map", %"class.std::vector.6", %"class.mozilla::UniquePtr" } %"class.std::map" = type { %"class.std::_Rb_tree" } %"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree, std::pair, std::__cxx11::basic_string >, std::_Select1st, std::__cxx11::basic_string > >, std::less >, std::allocator, std::__cxx11::basic_string > > >::_Rb_tree_impl" } %"struct.std::_Rb_tree, std::pair, std::__cxx11::basic_string >, std::_Select1st, std::__cxx11::basic_string > >, std::less >, std::allocator, std::__cxx11::basic_string > > >::_Rb_tree_impl" = type { %"struct.std::_Rb_tree_key_compare", %"struct.std::_Rb_tree_header" } %"struct.std::_Rb_tree_key_compare" = type { %"struct.std::less" } %"struct.std::less" = type { i8 } %"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 } %"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* } %"class.std::vector.6" = type { %"struct.std::_Vector_base.7" } %"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl" } %"struct.std::_Vector_base, std::allocator > >::_Vector_impl" = type { %"struct.std::pair"*, %"struct.std::pair"*, %"struct.std::pair"* } %"struct.std::pair" = type { i32, i32 } %"class.mozilla::UniquePtr" = type { %"struct.mozilla::Pair" } %"struct.mozilla::Pair" = type { %"struct.mozilla::detail::PairHelper" } %"struct.mozilla::detail::PairHelper" = type { %"struct.base::LaunchOptions::ForkDelegate"* } %"struct.base::LaunchOptions::ForkDelegate" = type { i32 (...)** } %"class.std::allocator" = type { i8 } %"class.std::initializer_list" = type { %"class.std::__cxx11::basic_string"*, i64 } %"class.mozilla::DefaultDelete" = type { i8 } %struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i64, i32, [20 x i8] } %struct._IO_marker = type opaque %struct._IO_codecvt = type opaque %struct._IO_wide_data = type opaque %"class.mozilla::Scoped" = type { %struct._IO_FILE* } %"struct.std::_Rb_tree_node" = type { %"struct.std::_Rb_tree_node_base", %"struct.__gnu_cxx::__aligned_membuf" } %"struct.__gnu_cxx::__aligned_membuf" = type { [64 x i8] } %"struct.std::pair.11" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" } %"class.__gnu_cxx::new_allocator" = type { i8 } %"class.__gnu_cxx::__normal_iterator" = type { %"struct.std::pair"* } %"class.std::move_iterator" = type { %"struct.std::pair"* } %"class.std::allocator.8" = type { i8 } %"class.__gnu_cxx::new_allocator.9" = type { i8 } $_ZN4base13LaunchOptionsD2Ev = comdat any $_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev = comdat any $_ZN7mozilla9UniquePtrIN4base13LaunchOptions12ForkDelegateENS_13DefaultDeleteIS3_EEED2Ev = comdat any $_ZNSt12_Vector_baseISt4pairIiiESaIS1_EED2Ev = comdat any $_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED2Ev = comdat any $_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E = comdat any $_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS8_E = comdat any $_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev = comdat any $_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev = comdat any $_ZNSt12_Destroy_auxILb0EE9__destroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvT_S9_ = comdat any $_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_range_initializeIPKS5_EEvT_SB_St20forward_iterator_tag = comdat any $_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm = comdat any $_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m = comdat any $_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv = comdat any $_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS7_EET0_T_SC_SB_ = comdat any $_ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJS1_EEEvDpOT_ = comdat any $_ZNSt6vectorISt4pairIiiESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_ = comdat any $_ZNKSt6vectorISt4pairIiiESaIS1_EE12_M_check_lenEmPKc = comdat any $_ZNSt12_Vector_baseISt4pairIiiESaIS1_EE11_M_allocateEm = comdat any $_ZNSt16allocator_traitsISaISt4pairIiiEEE8allocateERS2_m = comdat any $_ZN9__gnu_cxx13new_allocatorISt4pairIiiEE8allocateEmPKv = comdat any $_ZN7mozilla21ScopedCloseFileTraits7releaseEP8_IO_FILE = comdat any @.str = private unnamed_addr constant [6 x i8] c"-idrc\00", align 1 @.str.1 = private unnamed_addr constant [2 x i8] c"r\00", align 1 @.str.2 = private unnamed_addr constant [85 x i8] c"Distributor ID:\09%255[^\0A]\0ADescription:\09%255[^\0A]\0ARelease:\09%255[^\0A]\0ACodename:\09%255[^\0A]\0A\00", align 1 @.str.3 = private unnamed_addr constant [21 x i8] c"/usr/bin/lsb_release\00", align 1 @.str.5 = private unnamed_addr constant [27 x i8] c"fatal: STL threw bad_alloc\00", align 1 @.str.6 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_insert\00", align 1 ; Function Attrs: minsize nounwind optsize sspstrong uwtable define hidden zeroext i1 @_ZN7mozilla6widget3lsb13GetLSBReleaseER12nsTSubstringIcES4_S4_S4_(%class.nsTSubstring* dereferenceable(16), %class.nsTSubstring* dereferenceable(16), %class.nsTSubstring* dereferenceable(16), %class.nsTSubstring* dereferenceable(16)) local_unnamed_addr #0 !dbg !2908 { %5 = alloca [2 x i32], align 4 %6 = alloca %"class.std::vector", align 8 %7 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8 %8 = alloca %"class.std::allocator.0", align 1 %9 = alloca %"class.std::allocator.0", align 1 %10 = alloca %"struct.base::LaunchOptions", align 8 %11 = alloca %"struct.std::pair", align 4 %12 = alloca i32, align 4 %13 = alloca [256 x i8], align 16 %14 = alloca [256 x i8], align 16 %15 = alloca [256 x i8], align 16 %16 = alloca [256 x i8], align 16 call void @llvm.dbg.value(metadata %class.nsTSubstring* %0, metadata !2915, metadata !DIExpression()), !dbg !3579 call void @llvm.dbg.value(metadata %class.nsTSubstring* %1, metadata !2916, metadata !DIExpression()), !dbg !3580 call void @llvm.dbg.value(metadata %class.nsTSubstring* %2, metadata !2917, metadata !DIExpression()), !dbg !3581 call void @llvm.dbg.value(metadata %class.nsTSubstring* %3, metadata !2918, metadata !DIExpression()), !dbg !3582 %17 = tail call i32 @access(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0), i32 4) #7, !dbg !3583 %18 = icmp eq i32 %17, 0, !dbg !3585 br i1 %18, label %19, label %85, !dbg !3586 ;