; ModuleID = 'mangling.cpp' target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-apple-macosx10.10.0" %"class.std::__1::basic_ostream" = type { i32 (...)**, %"class.std::__1::basic_ios" } %"class.std::__1::basic_ios" = type { %"class.std::__1::ios_base", %"class.std::__1::basic_ostream"*, i32 } %"class.std::__1::ios_base" = type { i32 (...)**, i32, i64, i64, i32, i32, i8*, i8*, void (i32, %"class.std::__1::ios_base"*, i32)**, i32*, i64, i64, i64*, i64, i64, i8**, i64, i64 } %"class.std::__1::locale::id" = type { %"struct.std::__1::once_flag", i32 } %"struct.std::__1::once_flag" = type { i64 } %"struct.Something::Inside::Deeper" = type { i32 } %"class.std::__1::basic_string" = type { %"class.std::__1::__compressed_pair" } %"class.std::__1::__compressed_pair" = type { %"class.std::__1::__libcpp_compressed_pair_imp" } %"class.std::__1::__libcpp_compressed_pair_imp" = type { %"struct.std::__1::basic_string, std::__1::allocator >::__rep" } %"struct.std::__1::basic_string, std::__1::allocator >::__rep" = type { %union.anon } %union.anon = type { %"struct.std::__1::basic_string, std::__1::allocator >::__long" } %"struct.std::__1::basic_string, std::__1::allocator >::__long" = type { i64, i64, i8* } %"class.std::__1::vector" = type { %"class.std::__1::__vector_base" } %"class.std::__1::__vector_base" = type { %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"*, %"class.std::__1::__compressed_pair.1" } %"class.std::__1::__compressed_pair.1" = type { %"class.std::__1::__libcpp_compressed_pair_imp.2" } %"class.std::__1::__libcpp_compressed_pair_imp.2" = type { %"class.std::__1::basic_string"* } %struct.Outside = type { i32 } %"class.std::__1::locale" = type { %"class.std::__1::locale::__imp"* } %"class.std::__1::locale::__imp" = type opaque %"class.std::__1::basic_ostream >::sentry" = type { i8, %"class.std::__1::basic_ostream"* } %"class.std::__1::basic_streambuf" = type { i32 (...)**, %"class.std::__1::locale", i8*, i8*, i8*, i8*, i8*, i8* } %"class.std::__1::locale::facet" = type { %"class.std::__1::__shared_count" } %"class.std::__1::__shared_count" = type { i32 (...)**, i64 } %"class.std::__1::ctype" = type { %"class.std::__1::locale::facet", i32*, i8 } %"struct.std::__1::basic_string, std::__1::allocator >::__short" = type { %union.anon.0, [23 x i8] } %union.anon.0 = type { i8 } %"class.std::__1::__vector_base_common" = type { i8 } @_ZN9Something6Inside13anotherStaticE = global i32 137, align 4 @.str = private unnamed_addr constant [4 x i8] c"foo\00", align 1 @.str1 = private unnamed_addr constant [2 x i8] c"x\00", align 1 @.str2 = private unnamed_addr constant [2 x i8] c"y\00", align 1 @.str3 = private unnamed_addr constant [2 x i8] c"z\00", align 1 @_ZNSt3__14coutE = external global %"class.std::__1::basic_ostream" @.str4 = private unnamed_addr constant [6 x i8] c" and \00", align 1 @_ZNSt3__15ctypeIcE2idE = external global %"class.std::__1::locale::id" ; Function Attrs: noinline uwtable define i32 @_Z8manglingiPPKc(i32 %argc, i8** nocapture readnone %argv) #0 { %d = alloca %"struct.Something::Inside::Deeper", align 4 %1 = alloca %"class.std::__1::basic_string", align 8 %vs = alloca %"class.std::__1::vector", align 8 %2 = alloca [3 x %"class.std::__1::basic_string"], align 8 %3 = alloca %"class.std::__1::vector", align 8 %o = alloca %struct.Outside, align 4 store i32 11, i32* @_ZN9Something6Inside13anotherStaticE, align 4, !tbaa !1 %4 = call i32 @_ZN9Something6Inside6Deeper10deepMethodEi(%"struct.Something::Inside::Deeper"* %d, i32 23) call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm(%"class.std::__1::basic_string"* %1, i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i64 3) call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(%"class.std::__1::basic_string"* %1) #10 %5 = getelementptr inbounds [3 x %"class.std::__1::basic_string"]* %2, i64 0, i64 0 invoke void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm(%"class.std::__1::basic_string"* %5, i8* getelementptr inbounds ([2 x i8]* @.str1, i64 0, i64 0), i64 1) to label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EPKc.exit unwind label %32 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EPKc.exit: ; preds = %0 %6 = getelementptr inbounds [3 x %"class.std::__1::basic_string"]* %2, i64 0, i64 1 invoke void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm(%"class.std::__1::basic_string"* %6, i8* getelementptr inbounds ([2 x i8]* @.str2, i64 0, i64 0), i64 1) to label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EPKc.exit3 unwind label %32 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EPKc.exit3: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EPKc.exit %7 = getelementptr inbounds [3 x %"class.std::__1::basic_string"]* %2, i64 0, i64 2 invoke void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm(%"class.std::__1::basic_string"* %7, i8* getelementptr inbounds ([2 x i8]* @.str3, i64 0, i64 0), i64 1) to label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EPKc.exit4 unwind label %32 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EPKc.exit4: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1EPKc.exit3 %8 = getelementptr inbounds %"class.std::__1::vector"* %vs, i64 0, i32 0 %9 = bitcast %"class.std::__1::vector"* %vs to i8* call void @llvm.memset.p0i8.i64(i8* %9, i8 0, i64 24, i32 8, i1 false) #10 invoke void @_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE8allocateEm(%"class.std::__1::vector"* %vs, i64 3) to label %10 unwind label %.body ;