#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
struct l_class_OC___gnu_cxx_KD__KD___normal_iterator {
  int dummy;
};

/* Variables and functions */
int /*<<< orphan*/
_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC2ERKS2_(
    struct l_class_OC___gnu_cxx_KD__KD___normal_iterator *, unsigned int ***);
void _ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC1ERKS2_(
    struct l_class_OC___gnu_cxx_KD__KD___normal_iterator *llvm_cbe_this,
    unsigned int ***llvm_cbe___i) {
  struct l_class_OC___gnu_cxx_KD__KD___normal_iterator *llvm_cbe_this_2e_addr;
  unsigned int ***llvm_cbe___i_2e_addr;
  struct l_class_OC___gnu_cxx_KD__KD___normal_iterator *llvm_cbe_this1;
  unsigned int ***llvm_cbe_tmp__23;
  *(&llvm_cbe_this_2e_addr) = llvm_cbe_this;
  *(&llvm_cbe___i_2e_addr) = llvm_cbe___i;
  llvm_cbe_this1 = *(&llvm_cbe_this_2e_addr);
  llvm_cbe_tmp__23 = *(&llvm_cbe___i_2e_addr);
  _ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC2ERKS2_(
      llvm_cbe_this1, llvm_cbe_tmp__23);
  return;
}


x86 assembly (clang, -O0):
<_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC1ERKS2_>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rdi
mov    -0x30(%rbp),%rsi
call   1030 <_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC2ERKS2_@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC1ERKS2_>:
jmp    1030 <_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC2ERKS2_@plt>

LLVM IR (-O0):
%struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator = type { i32 }
define void @_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC1ERKS2_(%struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator* %0, i32*** %1) {
%3 = alloca %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator*
%4 = alloca i32***
%5 = alloca %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator*
%6 = alloca i32***
%7 = alloca %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator*
%8 = alloca i32***
store %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator* %0, %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator** %3
store i32*** %1, i32**** %4
%9 = load %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator*, %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator** %3
store %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator* %9, %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator** %5
%10 = load i32***, i32**** %4
store i32*** %10, i32**** %6
%11 = load %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator*, %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator** %5
store %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator* %11, %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator** %7
%12 = load i32***, i32**** %6
store i32*** %12, i32**** %8
%13 = load %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator*, %struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator** %7
%14 = load i32***, i32**** %8
%15 = call i32 @_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC2ERKS2_(%struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator* %13, i32*** %14)
ret void
}

LLVM IR (-O2):
%struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator = type { i32 }
define void @_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC1ERKS2_(%struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator* %0, i32*** %1) {
%3 = tail call i32 @_ZN9__gnu_cxx17__normal_iteratorIPPiSt6vectorIS1_SaIS1_EEEC2ERKS2_(%struct.l_class_OC___gnu_cxx_KD__KD___normal_iterator* %0, i32*** %1)
ret void
}