Skip to content

Instantly share code, notes, and snippets.

@abcarroll
Created November 10, 2020 02:13
Show Gist options
  • Save abcarroll/388a5d429a88ae6418b675040d610fc4 to your computer and use it in GitHub Desktop.
Save abcarroll/388a5d429a88ae6418b675040d610fc4 to your computer and use it in GitHub Desktop.
An example PHP extension (ulopcodes) as LLVM IR
; ModuleID = '/home/ab/sail/project/sail-php-driver/ulopcodes.c'
source_filename = "/home/ab/sail/project/sail-php-driver/ulopcodes.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"
%struct._zend_ulopcodes_globals = type { i8, i8 }
%struct._zend_ini_entry_def = type { i8*, i32 (%struct._zend_ini_entry*, %struct._zend_string*, i8*, i8*, i8*, i32)*, i8*, i8*, i8*, i8*, void (%struct._zend_ini_entry*, i32)*, i32, i16, i8 }
%struct._zend_ini_entry = type { %struct._zend_string*, i32 (%struct._zend_ini_entry*, %struct._zend_string*, i8*, i8*, i8*, i32)*, i8*, i8*, i8*, %struct._zend_string*, %struct._zend_string*, void (%struct._zend_ini_entry*, i32)*, i32, i8, i8, i8 }
%struct._zend_string = type { %struct._zend_refcounted_h, i64, i64, [1 x i8] }
%struct._zend_refcounted_h = type { i32, %union.anon }
%union.anon = type { i32 }
%struct._zend_execute_data = type { %struct._zend_op*, %struct._zend_execute_data*, %struct._zval_struct*, %union._zend_function*, %struct._zval_struct, %struct._zend_execute_data*, %struct._zend_array*, i8** }
%struct._zend_op = type { i8*, %union._znode_op, %union._znode_op, %union._znode_op, i32, i32, i8, i8, i8, i8 }
%union._znode_op = type { i32 }
%union._zend_function = type { %struct._zend_op_array }
%struct._zend_op_array = type { i8, [3 x i8], i32, %struct._zend_string*, %struct._zend_class_entry*, %union._zend_function*, i32, i32, %struct._zend_arg_info*, i32, i32, i32, i32, %struct._zend_op*, i8***, %struct._zend_array**, %struct._zend_array*, %struct._zend_string**, i32*, i32, i32, %struct._zend_live_range*, %struct._zend_try_catch_element*, %struct._zend_string*, i32, i32, %struct._zend_string*, i32, %struct._zval_struct*, [6 x i8*] }
%struct._zend_class_entry = type { i8, %struct._zend_string*, %union.anon.1, i32, i32, i32, i32, %struct._zval_struct*, %struct._zval_struct*, %struct._zval_struct**, %struct._zend_array, %struct._zend_array, %struct._zend_array, %struct._zend_property_info**, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %struct._zend_class_iterator_funcs*, %union.anon.3, %struct._zend_object_iterator* (%struct._zend_class_entry*, %struct._zval_struct*, i32)*, %union._zend_function* (%struct._zend_class_entry*, %struct._zend_string*)*, i32 (%struct._zval_struct*, i8**, i64*, %struct._zend_serialize_data*)*, i32 (%struct._zval_struct*, %struct._zend_class_entry*, i8*, i64, %struct._zend_unserialize_data*)*, i32, i32, %union.anon.4, %struct._zend_class_name*, %struct._zend_trait_alias**, %struct._zend_trait_precedence**, %union.anon.5 }
%union.anon.1 = type { %struct._zend_class_entry* }
%struct._zend_array = type { %struct._zend_refcounted_h, %union.anon.0, i32, %struct._Bucket*, i32, i32, i32, i32, i64, void (%struct._zval_struct*)* }
%union.anon.0 = type { i32 }
%struct._Bucket = type { %struct._zval_struct, i64, %struct._zend_string* }
%struct._zend_property_info = type { i32, i32, %struct._zend_string*, %struct._zend_string*, %struct._zend_class_entry*, i64 }
%struct._zend_class_iterator_funcs = type { %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function*, %union._zend_function* }
%union.anon.3 = type { %struct._zend_object* (%struct._zend_class_entry*)* }
%struct._zend_object = type { %struct._zend_refcounted_h, i32, %struct._zend_class_entry*, %struct._zend_object_handlers*, %struct._zend_array*, [1 x %struct._zval_struct] }
%struct._zend_object_handlers = type { i32, void (%struct._zend_object*)*, void (%struct._zend_object*)*, %struct._zend_object* (%struct._zval_struct*)*, %struct._zval_struct* (%struct._zval_struct*, %struct._zval_struct*, i32, i8**, %struct._zval_struct*)*, %struct._zval_struct* (%struct._zval_struct*, %struct._zval_struct*, %struct._zval_struct*, i8**)*, %struct._zval_struct* (%struct._zval_struct*, %struct._zval_struct*, i32, %struct._zval_struct*)*, void (%struct._zval_struct*, %struct._zval_struct*, %struct._zval_struct*)*, %struct._zval_struct* (%struct._zval_struct*, %struct._zval_struct*, i32, i8**)*, %struct._zval_struct* (%struct._zval_struct*, %struct._zval_struct*)*, void (%struct._zval_struct*, %struct._zval_struct*)*, i32 (%struct._zval_struct*, %struct._zval_struct*, i32, i8**)*, void (%struct._zval_struct*, %struct._zval_struct*, i8**)*, i32 (%struct._zval_struct*, %struct._zval_struct*, i32)*, void (%struct._zval_struct*, %struct._zval_struct*)*, %struct._zend_array* (%struct._zval_struct*)*, %union._zend_function* (%struct._zend_object**, %struct._zend_string*, %struct._zval_struct*)*, i32 (%struct._zend_string*, %struct._zend_object*, %struct._zend_execute_data*, %struct._zval_struct*)*, %union._zend_function* (%struct._zend_object*)*, %struct._zend_string* (%struct._zend_object*)*, i32 (%struct._zval_struct*, %struct._zval_struct*)*, i32 (%struct._zval_struct*, %struct._zval_struct*, i32)*, i32 (%struct._zval_struct*, i64*)*, %struct._zend_array* (%struct._zval_struct*, i32*)*, i32 (%struct._zval_struct*, %struct._zend_class_entry**, %union._zend_function**, %struct._zend_object**)*, %struct._zend_array* (%struct._zval_struct*, %struct._zval_struct**, i32*)*, i32 (i8, %struct._zval_struct*, %struct._zval_struct*, %struct._zval_struct*)*, i32 (%struct._zval_struct*, %struct._zval_struct*, %struct._zval_struct*)*, %struct._zend_array* (%struct._zval_struct*, i32)* }
%struct._zend_object_iterator = type { %struct._zend_object, %struct._zval_struct, %struct._zend_object_iterator_funcs*, i64 }
%struct._zend_object_iterator_funcs = type { void (%struct._zend_object_iterator*)*, i32 (%struct._zend_object_iterator*)*, %struct._zval_struct* (%struct._zend_object_iterator*)*, void (%struct._zend_object_iterator*, %struct._zval_struct*)*, void (%struct._zend_object_iterator*)*, void (%struct._zend_object_iterator*)*, void (%struct._zend_object_iterator*)* }
%struct._zend_serialize_data = type opaque
%struct._zend_unserialize_data = type opaque
%union.anon.4 = type { %struct._zend_class_entry** }
%struct._zend_class_name = type { %struct._zend_string*, %struct._zend_string* }
%struct._zend_trait_alias = type { %struct._zend_trait_method_reference, %struct._zend_string*, i32 }
%struct._zend_trait_method_reference = type { %struct._zend_string*, %struct._zend_string* }
%struct._zend_trait_precedence = type { %struct._zend_trait_method_reference, i32, [1 x %struct._zend_string*] }
%union.anon.5 = type { %struct.anon.6 }
%struct.anon.6 = type { %struct._zend_string*, i32, i32, %struct._zend_string* }
%struct._zend_arg_info = type { %struct._zend_string*, i64, i8, i8 }
%struct._zend_live_range = type { i32, i32, i32 }
%struct._zend_try_catch_element = type { i32, i32, i32, i32 }
%struct._zval_struct = type { %union._zend_value, %union.anon.9, %union.anon.12 }
%union._zend_value = type { i64 }
%union.anon.9 = type { i32 }
%union.anon.12 = type { i32 }
%struct._zend_internal_arg_info = type { i8*, i64, i8, i8 }
%struct._zend_module_entry = type { i16, i32, i8, i8, %struct._zend_ini_entry*, %struct._zend_module_dep*, i8*, %struct._zend_function_entry*, i32 (i32, i32)*, i32 (i32, i32)*, i32 (i32, i32)*, i32 (i32, i32)*, void (%struct._zend_module_entry*)*, i8*, i64, i8*, void (i8*)*, void (i8*)*, i32 ()*, i32, i8, i8*, i32, i8* }
%struct._zend_module_dep = type { i8*, i8*, i8*, i8 }
%struct._zend_function_entry = type { i8*, {}*, %struct._zend_internal_arg_info*, i32, i32 }
%struct._zend_extension_version_info = type { i32, i8* }
%struct._zend_extension = type { i8*, i8*, i8*, i8*, i8*, {}*, void (%struct._zend_extension*)*, void ()*, void ()*, void (i32, i8*)*, void (%struct._zend_op_array*)*, void (%struct._zend_execute_data*)*, void (%struct._zend_execute_data*)*, void (%struct._zend_execute_data*)*, void (%struct._zend_op_array*)*, void (%struct._zend_op_array*)*, i32 (i32)*, i32 (i8*)*, i64 (%struct._zend_op_array*)*, i64 (%struct._zend_op_array*, i8*)*, i8*, i8*, i8*, i8*, i8*, i32 }
@ulopcodes_globals = dso_local global %struct._zend_ulopcodes_globals zeroinitializer, align 1, !dbg !0
@ini_entries = internal constant [3 x %struct._zend_ini_entry_def] [%struct._zend_ini_entry_def { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.10, i32 0, i32 0), i32 (%struct._zend_ini_entry*, %struct._zend_string*, i8*, i8*, i8*, i32)* @OnUpdateBool, i8* null, i8* getelementptr inbounds (%struct._zend_ulopcodes_globals, %struct._zend_ulopcodes_globals* @ulopcodes_globals, i32 0, i32 0), i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i32 0, i32 0), void (%struct._zend_ini_entry*, i32)* null, i32 1, i16 17, i8 7 }, %struct._zend_ini_entry_def { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.12, i32 0, i32 0), i32 (%struct._zend_ini_entry*, %struct._zend_string*, i8*, i8*, i8*, i32)* @OnUpdateBool, i8* inttoptr (i64 1 to i8*), i8* getelementptr inbounds (%struct._zend_ulopcodes_globals, %struct._zend_ulopcodes_globals* @ulopcodes_globals, i32 0, i32 0), i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i32 0, i32 0), void (%struct._zend_ini_entry*, i32)* null, i32 1, i16 22, i8 7 }, %struct._zend_ini_entry_def zeroinitializer], align 16, !dbg !869
@.str = private unnamed_addr constant [18 x i8] c"ulopcodes support\00", align 1
@.str.1 = private unnamed_addr constant [8 x i8] c"enabled\00", align 1
@.str.2 = private unnamed_addr constant [15 x i8] c"ulopcodes_emit\00", align 1
@ulopcodes_functions = dso_local constant [2 x { i8*, void (%struct._zend_execute_data*, %struct._zval_struct*)*, %struct._zend_internal_arg_info*, i32, i32 }] [{ i8*, void (%struct._zend_execute_data*, %struct._zval_struct*)*, %struct._zend_internal_arg_info*, i32, i32 } { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i32 0, i32 0), void (%struct._zend_execute_data*, %struct._zval_struct*)* @zif_ulopcodes_emit, %struct._zend_internal_arg_info* null, i32 -1, i32 0 }, { i8*, void (%struct._zend_execute_data*, %struct._zval_struct*)*, %struct._zend_internal_arg_info*, i32, i32 } zeroinitializer], align 16, !dbg !23
@.str.3 = private unnamed_addr constant [10 x i8] c"ulopcodes\00", align 1
@.str.4 = private unnamed_addr constant [6 x i8] c"0.0.4\00", align 1
@.str.5 = private unnamed_addr constant [16 x i8] c"API20190902,NTS\00", align 1
@ulopcodes_module_entry = dso_local global %struct._zend_module_entry { i16 168, i32 20190902, i8 0, i8 0, %struct._zend_ini_entry* null, %struct._zend_module_dep* null, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3, i32 0, i32 0), %struct._zend_function_entry* bitcast ([2 x { i8*, void (%struct._zend_execute_data*, %struct._zval_struct*)*, %struct._zend_internal_arg_info*, i32, i32 }]* @ulopcodes_functions to %struct._zend_function_entry*), i32 (i32, i32)* @zm_startup_ulopcodes, i32 (i32, i32)* @zm_shutdown_ulopcodes, i32 (i32, i32)* null, i32 (i32, i32)* null, void (%struct._zend_module_entry*)* @zm_info_ulopcodes, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i32 0, i32 0), i64 0, i8* null, void (i8*)* null, void (i8*)* null, i32 ()* null, i32 0, i8 0, i8* null, i32 0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.5, i32 0, i32 0) }, align 8, !dbg !782
@.str.6 = private unnamed_addr constant [17 x i8] c"API320190902,NTS\00", align 1
@extension_version_info = dso_local local_unnamed_addr global %struct._zend_extension_version_info { i32 320190902, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i32 0, i32 0) }, align 8, !dbg !784
@.str.7 = private unnamed_addr constant [17 x i8] c"Pedro Magalh\C3\A3es\00", align 1
@.str.8 = private unnamed_addr constant [29 x i8] c"https://pmmaga.net/ulopcodes\00", align 1
@.str.9 = private unnamed_addr constant [19 x i8] c"Copyright (c) 2016\00", align 1
@zend_extension_entry = dso_local local_unnamed_addr global { i8*, i8*, i8*, i8*, i8*, i32 (%struct._zend_extension*)*, void (%struct._zend_extension*)*, void ()*, void ()*, void (i32, i8*)*, void (%struct._zend_op_array*)*, void (%struct._zend_execute_data*)*, void (%struct._zend_execute_data*)*, void (%struct._zend_execute_data*)*, void (%struct._zend_op_array*)*, void (%struct._zend_op_array*)*, i32 (i32)*, i32 (i8*)*, i64 (%struct._zend_op_array*)*, i64 (%struct._zend_op_array*, i8*)*, i8*, i8*, i8*, i8*, i8*, i32 } { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.9, i32 0, i32 0), i32 (%struct._zend_extension*)* @ulop_startup, void (%struct._zend_extension*)* null, void ()* null, void ()* null, void (i32, i8*)* null, void (%struct._zend_op_array*)* @ulop_oparray_h, void (%struct._zend_execute_data*)* null, void (%struct._zend_execute_data*)* null, void (%struct._zend_execute_data*)* null, void (%struct._zend_op_array*)* null, void (%struct._zend_op_array*)* null, i32 (i32)* null, i32 (i8*)* null, i64 (%struct._zend_op_array*)* null, i64 (%struct._zend_op_array*, i8*)* null, i8* null, i8* null, i8* null, i8* null, i8* null, i32 -1 }, align 8, !dbg !793
@.str.10 = private unnamed_addr constant [18 x i8] c"ulopcodes.enabled\00", align 1
@.str.11 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@.str.12 = private unnamed_addr constant [23 x i8] c"ulopcodes.dump_oparray\00", align 1
@.str.13 = private unnamed_addr constant [22 x i8] c"--- Function: %s ---\0A\00", align 1
@.str.14 = private unnamed_addr constant [29 x i8] c"--- Function: (no name) ---\0A\00", align 1
@.str.15 = private unnamed_addr constant [11 x i8] c"Literals:\0A\00", align 1
@.str.16 = private unnamed_addr constant [9 x i8] c"%d - %s\0A\00", align 1
@.str.17 = private unnamed_addr constant [9 x i8] c"%d - %d\0A\00", align 1
@.str.18 = private unnamed_addr constant [8 x i8] c"------\0A\00", align 1
@.str.19 = private unnamed_addr constant [62 x i8] c"Please use constants for the opcode passed to ulopcodes_emit.\00", align 1
@.str.20 = private unnamed_addr constant [41 x i8] c"Unknown opcode passed to ulopcodes_emit.\00", align 1
@.str.21 = private unnamed_addr constant [69 x i8] c"Please use a number for the extended_value passed to ulopcodes_emit.\00", align 1
@.str.22 = private unnamed_addr constant [70 x i8] c"%d - Opcode: %s Op1: (%d - %d) Op2: (%d - %d) Ext: %d Res: (%d - %d)\0A\00", align 1
@.str.23 = private unnamed_addr constant [17 x i8] c"Opcode: UNKNOWN\0A\00", align 1
@.str.24 = private unnamed_addr constant [22 x i8] c"--- End function ---\0A\00", align 1
; Function Attrs: norecurse nounwind readnone uwtable
define dso_local void @zif_ulopcodes_emit(%struct._zend_execute_data* nocapture %0, %struct._zval_struct* nocapture %1) #0 !dbg !896 {
call void @llvm.dbg.value(metadata %struct._zend_execute_data* undef, metadata !898, metadata !DIExpression()), !dbg !900
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !899, metadata !DIExpression()), !dbg !900
ret void, !dbg !901
}
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind uwtable
define dso_local i32 @zm_startup_ulopcodes(i32 %0, i32 %1) #2 !dbg !902 {
call void @llvm.dbg.value(metadata i32 undef, metadata !904, metadata !DIExpression()), !dbg !911
call void @llvm.dbg.value(metadata i32 %1, metadata !905, metadata !DIExpression()), !dbg !911
call void @llvm.dbg.value(metadata i32 0, metadata !906, metadata !DIExpression()), !dbg !911
br label %3, !dbg !912
3: ; preds = %2, %11
%4 = phi i64 [ 0, %2 ], [ %12, %11 ]
%5 = phi i32 [ 0, %2 ], [ %13, %11 ]
call void @llvm.dbg.value(metadata i64 %4, metadata !906, metadata !DIExpression()), !dbg !911
%6 = trunc i32 %5 to i8, !dbg !913
%7 = tail call i8* @zend_get_opcode_name(i8 zeroext %6) #5, !dbg !914
call void @llvm.dbg.value(metadata i8* %7, metadata !907, metadata !DIExpression()), !dbg !915
%8 = icmp eq i8* %7, null, !dbg !916
br i1 %8, label %11, label %9, !dbg !918
9: ; preds = %3
%10 = tail call i64 @strlen(i8* nonnull %7) #6, !dbg !919
tail call void @zend_register_long_constant(i8* nonnull %7, i64 %10, i64 %4, i32 3, i32 %1) #5, !dbg !921
br label %11, !dbg !922
11: ; preds = %9, %3
%12 = add nuw nsw i64 %4, 1, !dbg !923
%13 = add nuw nsw i32 %5, 1, !dbg !923
call void @llvm.dbg.value(metadata i64 %12, metadata !906, metadata !DIExpression()), !dbg !911
%14 = icmp eq i64 %12, 195, !dbg !924
br i1 %14, label %15, label %3, !dbg !912, !llvm.loop !925
15: ; preds = %11
call void @llvm.dbg.value(metadata %struct._zend_ulopcodes_globals* @ulopcodes_globals, metadata !927, metadata !DIExpression()), !dbg !933
store i8 0, i8* getelementptr inbounds (%struct._zend_ulopcodes_globals, %struct._zend_ulopcodes_globals* @ulopcodes_globals, i64 0, i32 0), align 1, !dbg !935, !tbaa !936
store i8 0, i8* getelementptr inbounds (%struct._zend_ulopcodes_globals, %struct._zend_ulopcodes_globals* @ulopcodes_globals, i64 0, i32 1), align 1, !dbg !940, !tbaa !941
%16 = tail call i32 @zend_register_ini_entries(%struct._zend_ini_entry_def* getelementptr inbounds ([3 x %struct._zend_ini_entry_def], [3 x %struct._zend_ini_entry_def]* @ini_entries, i64 0, i64 0), i32 %1) #5, !dbg !942
ret i32 0, !dbg !943
}
declare !dbg !944 dso_local i8* @zend_get_opcode_name(i8 zeroext) local_unnamed_addr #3
declare !dbg !949 dso_local void @zend_register_long_constant(i8*, i64, i64, i32, i32) local_unnamed_addr #3
; Function Attrs: argmemonly nofree nounwind readonly
declare dso_local i64 @strlen(i8* nocapture) local_unnamed_addr #4
declare !dbg !953 dso_local i32 @zend_register_ini_entries(%struct._zend_ini_entry_def*, i32) local_unnamed_addr #3
; Function Attrs: nounwind uwtable
define dso_local i32 @zm_shutdown_ulopcodes(i32 %0, i32 %1) #2 !dbg !958 {
call void @llvm.dbg.value(metadata i32 undef, metadata !960, metadata !DIExpression()), !dbg !962
call void @llvm.dbg.value(metadata i32 %1, metadata !961, metadata !DIExpression()), !dbg !962
tail call void @zend_unregister_ini_entries(i32 %1) #5, !dbg !963
ret i32 0, !dbg !964
}
declare !dbg !965 dso_local void @zend_unregister_ini_entries(i32) local_unnamed_addr #3
; Function Attrs: nounwind uwtable
define dso_local void @zm_info_ulopcodes(%struct._zend_module_entry* %0) #2 !dbg !968 {
call void @llvm.dbg.value(metadata %struct._zend_module_entry* %0, metadata !970, metadata !DIExpression()), !dbg !971
tail call void @php_info_print_table_start() #5, !dbg !972
tail call void (i32, ...) @php_info_print_table_header(i32 2, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0)) #5, !dbg !973
tail call void @php_info_print_table_end() #5, !dbg !974
tail call void @display_ini_entries(%struct._zend_module_entry* %0) #5, !dbg !975
ret void, !dbg !976
}
declare !dbg !977 dso_local void @php_info_print_table_start() local_unnamed_addr #3
declare !dbg !979 dso_local void @php_info_print_table_header(i32, ...) local_unnamed_addr #3
declare !dbg !982 dso_local void @php_info_print_table_end() local_unnamed_addr #3
declare !dbg !983 dso_local void @display_ini_entries(%struct._zend_module_entry*) local_unnamed_addr #3
; Function Attrs: nounwind uwtable
define dso_local i32 @ulop_startup(%struct._zend_extension* nocapture readnone %0) #2 !dbg !986 {
call void @llvm.dbg.value(metadata %struct._zend_extension* undef, metadata !988, metadata !DIExpression()), !dbg !989
%2 = tail call i32 @zend_startup_module(%struct._zend_module_entry* nonnull @ulopcodes_module_entry) #5, !dbg !990
ret i32 %2, !dbg !991
}
declare !dbg !992 dso_local i32 @zend_startup_module(%struct._zend_module_entry*) local_unnamed_addr #3
; Function Attrs: nounwind uwtable
define dso_local void @ulop_oparray_h(%struct._zend_op_array* readonly %0) #2 !dbg !995 {
call void @llvm.dbg.declare(metadata i8** undef, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !1011
call void @llvm.dbg.declare(metadata i32* undef, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 192, 32)), !dbg !1011
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !997, metadata !DIExpression()), !dbg !1012
%2 = load i8, i8* getelementptr inbounds (%struct._zend_ulopcodes_globals, %struct._zend_ulopcodes_globals* @ulopcodes_globals, i64 0, i32 0), align 1, !dbg !1013, !tbaa !936
%3 = icmp eq i8 %2, 0, !dbg !1013
br i1 %3, label %370, label %4, !dbg !1014
4: ; preds = %1
%5 = load i8, i8* getelementptr inbounds (%struct._zend_ulopcodes_globals, %struct._zend_ulopcodes_globals* @ulopcodes_globals, i64 0, i32 1), align 1, !dbg !1015, !tbaa !941
%6 = icmp eq i8 %5, 0, !dbg !1015
br i1 %6, label %49, label %7, !dbg !1017
7: ; preds = %4
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1018, metadata !DIExpression()) #5, !dbg !1022
%8 = getelementptr inbounds %struct._zend_op_array, %struct._zend_op_array* %0, i64 0, i32 3, !dbg !1025
%9 = load %struct._zend_string*, %struct._zend_string** %8, align 8, !dbg !1025, !tbaa !1027
%10 = icmp eq %struct._zend_string* %9, null, !dbg !1031
br i1 %10, label %14, label %11, !dbg !1032
11: ; preds = %7
%12 = getelementptr inbounds %struct._zend_string, %struct._zend_string* %9, i64 0, i32 3, i64 0, !dbg !1033
%13 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.13, i64 0, i64 0), i8* nonnull %12) #5, !dbg !1035
br label %16, !dbg !1036
14: ; preds = %7
%15 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.14, i64 0, i64 0)) #5, !dbg !1037
br label %16
16: ; preds = %14, %11
%17 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.15, i64 0, i64 0)) #5, !dbg !1039
call void @llvm.dbg.value(metadata i32 0, metadata !1021, metadata !DIExpression()) #5, !dbg !1022
%18 = getelementptr inbounds %struct._zend_op_array, %struct._zend_op_array* %0, i64 0, i32 27, !dbg !1040
%19 = load i32, i32* %18, align 8, !dbg !1040, !tbaa !1043
%20 = icmp sgt i32 %19, 0, !dbg !1044
br i1 %20, label %21, label %47, !dbg !1045
21: ; preds = %16
%22 = getelementptr inbounds %struct._zend_op_array, %struct._zend_op_array* %0, i64 0, i32 28
br label %23, !dbg !1045
23: ; preds = %42, %21
%24 = phi i64 [ 0, %21 ], [ %43, %42 ]
call void @llvm.dbg.value(metadata i64 %24, metadata !1021, metadata !DIExpression()) #5, !dbg !1022
%25 = load %struct._zval_struct*, %struct._zval_struct** %22, align 8, !dbg !1046, !tbaa !1049
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()) #5, !dbg !1055
%26 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %25, i64 %24, i32 1, !dbg !1057
%27 = bitcast %union.anon.9* %26 to i8*, !dbg !1058
%28 = load i8, i8* %27, align 8, !dbg !1058, !tbaa !1059
%29 = icmp eq i8 %28, 6, !dbg !1060
br i1 %29, label %30, label %37, !dbg !1061
30: ; preds = %23
%31 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %25, i64 %24, i32 0, !dbg !1062
%32 = bitcast %union._zend_value* %31 to %struct._zend_string**, !dbg !1062
%33 = load %struct._zend_string*, %struct._zend_string** %32, align 8, !dbg !1062, !tbaa !1059
%34 = getelementptr inbounds %struct._zend_string, %struct._zend_string* %33, i64 0, i32 3, i64 0, !dbg !1062
%35 = trunc i64 %24 to i32, !dbg !1064
%36 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.16, i64 0, i64 0), i32 %35, i8* nonnull %34) #5, !dbg !1064
br label %42, !dbg !1065
37: ; preds = %23
%38 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %25, i64 %24, i32 0, i32 0, !dbg !1066
%39 = load i64, i64* %38, align 8, !dbg !1066, !tbaa !1059
%40 = trunc i64 %24 to i32, !dbg !1068
%41 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0), i32 %40, i64 %39) #5, !dbg !1068
br label %42
42: ; preds = %37, %30
%43 = add nuw nsw i64 %24, 1, !dbg !1069
call void @llvm.dbg.value(metadata i64 %43, metadata !1021, metadata !DIExpression()) #5, !dbg !1022
%44 = load i32, i32* %18, align 8, !dbg !1040, !tbaa !1043
%45 = sext i32 %44 to i64, !dbg !1044
%46 = icmp slt i64 %43, %45, !dbg !1044
br i1 %46, label %23, label %47, !dbg !1045, !llvm.loop !1070
47: ; preds = %42, %16
%48 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.18, i64 0, i64 0)) #5, !dbg !1072
br label %49, !dbg !1073
49: ; preds = %47, %4
call void @llvm.dbg.value(metadata i32 0, metadata !998, metadata !DIExpression()), !dbg !1074
%50 = getelementptr inbounds %struct._zend_op_array, %struct._zend_op_array* %0, i64 0, i32 12, !dbg !1075
%51 = load i32, i32* %50, align 4, !dbg !1075, !tbaa !1076
%52 = icmp eq i32 %51, 0, !dbg !1077
br i1 %52, label %365, label %53, !dbg !1078
53: ; preds = %49
%54 = getelementptr inbounds %struct._zend_op_array, %struct._zend_op_array* %0, i64 0, i32 13
%55 = getelementptr inbounds %struct._zend_op_array, %struct._zend_op_array* %0, i64 0, i32 28
br label %56, !dbg !1078
56: ; preds = %53, %360
%57 = phi i64 [ 0, %53 ], [ %361, %360 ]
call void @llvm.dbg.value(metadata i64 %57, metadata !998, metadata !DIExpression()), !dbg !1074
%58 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1079, !tbaa !1080
%59 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %58, i64 %57, i32 6, !dbg !1081
%60 = load i8, i8* %59, align 4, !dbg !1081, !tbaa !1082
%61 = icmp eq i8 %60, 61, !dbg !1084
br i1 %61, label %62, label %329, !dbg !1085
62: ; preds = %56
%63 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %58, i64 %57, i32 8, !dbg !1086
%64 = load i8, i8* %63, align 2, !dbg !1086, !tbaa !1087
%65 = icmp eq i8 %64, 1, !dbg !1088
br i1 %65, label %66, label %329, !dbg !1089
66: ; preds = %62
%67 = load %struct._zval_struct*, %struct._zval_struct** %55, align 8, !dbg !1090, !tbaa !1049
%68 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %58, i64 %57, i32 2, i32 0, !dbg !1090
%69 = load i32, i32* %68, align 4, !dbg !1090, !tbaa !1059
%70 = zext i32 %69 to i64, !dbg !1090
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()), !dbg !1091
%71 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %67, i64 %70, i32 1, !dbg !1093
%72 = bitcast %union.anon.9* %71 to i8*, !dbg !1094
%73 = load i8, i8* %72, align 8, !dbg !1094, !tbaa !1059
%74 = icmp eq i8 %73, 6, !dbg !1095
br i1 %74, label %75, label %329, !dbg !1096
75: ; preds = %66
%76 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %67, i64 %70, i32 0, !dbg !1097
%77 = bitcast %union._zend_value* %76 to %struct._zend_string**, !dbg !1097
%78 = load %struct._zend_string*, %struct._zend_string** %77, align 8, !dbg !1097, !tbaa !1059
%79 = getelementptr inbounds %struct._zend_string, %struct._zend_string* %78, i64 0, i32 2, !dbg !1097
%80 = load i64, i64* %79, align 8, !dbg !1097, !tbaa !1098
%81 = icmp eq i64 %80, 14, !dbg !1102
br i1 %81, label %82, label %329, !dbg !1103
82: ; preds = %75
%83 = getelementptr inbounds %struct._zend_string, %struct._zend_string* %78, i64 0, i32 3, i64 0, !dbg !1104
%84 = tail call i32 @strcmp(i8* nonnull %83, i8* nonnull dereferenceable(15) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0)) #6, !dbg !1105
%85 = icmp eq i32 %84, 0, !dbg !1106
br i1 %85, label %86, label %329, !dbg !1107
86: ; preds = %82
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 128, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 248, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 0, metadata !1007, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i32 0, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i32 0, metadata !1009, metadata !DIExpression()), !dbg !1108
%87 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %58, i64 %57, i32 1, i32 0, !dbg !1109
store i32 0, i32* %87, align 8, !dbg !1109, !tbaa !1059
%88 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1109, !tbaa !1080
%89 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %88, i64 %57, i32 2, i32 0, !dbg !1109
store i32 0, i32* %89, align 4, !dbg !1109, !tbaa !1059
%90 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1109, !tbaa !1080
%91 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %90, i64 %57, i32 3, i32 0, !dbg !1109
store i32 0, i32* %91, align 8, !dbg !1109, !tbaa !1059
%92 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1109, !tbaa !1080
%93 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %92, i64 %57, i32 6, !dbg !1109
call void @llvm.dbg.value(metadata i64 %57, metadata !1007, metadata !DIExpression(DW_OP_plus_uconst, 1, DW_OP_stack_value)), !dbg !1108
%94 = trunc i64 %57 to i32, !dbg !1111
%95 = bitcast i8* %93 to i32*, !dbg !1109
store i32 0, i32* %95, align 4, !dbg !1109
br label %96, !dbg !1111
96: ; preds = %308, %86
%97 = phi %struct._zend_op* [ %92, %86 ], [ %294, %308 ], !dbg !1112
%98 = phi i32 [ 0, %86 ], [ %295, %308 ], !dbg !1113
%99 = phi i8 [ 0, %86 ], [ %296, %308 ], !dbg !1108
%100 = phi i32 [ 0, %86 ], [ %297, %308 ], !dbg !1114
%101 = phi i32 [ 0, %86 ], [ %298, %308 ], !dbg !1114
%102 = phi i8 [ 0, %86 ], [ %299, %308 ], !dbg !1114
%103 = phi i32 [ %94, %86 ], [ %107, %308 ]
%104 = phi i32 [ 0, %86 ], [ %300, %308 ], !dbg !1108
%105 = phi i32 [ 0, %86 ], [ %309, %308 ], !dbg !1108
%106 = phi i8 [ 0, %86 ], [ %301, %308 ], !dbg !1114
%107 = add i32 %103, 1, !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %105, metadata !1009, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i32 %107, metadata !1007, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
%108 = zext i32 %107 to i64, !dbg !1116
%109 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %97, i64 %108, i32 6, !dbg !1117
%110 = load i8, i8* %109, align 4, !dbg !1117, !tbaa !1082
%111 = icmp eq i8 %110, -127, !dbg !1118
br i1 %111, label %118, label %112, !dbg !1119
112: ; preds = %96
%113 = load i32, i32* %50, align 4, !dbg !1120, !tbaa !1076
%114 = add i32 %113, -1, !dbg !1121
%115 = icmp uge i32 %107, %114, !dbg !1122
%116 = icmp eq i32 %105, 0
%117 = and i1 %116, %115, !dbg !1123
br i1 %117, label %312, label %120, !dbg !1123
118: ; preds = %96
%119 = icmp eq i32 %105, 0, !dbg !1111
br i1 %119, label %312, label %293, !dbg !1111
120: ; preds = %112
br i1 %116, label %121, label %293, !dbg !1124
121: ; preds = %120
switch i8 %110, label %293 [
i8 65, label %122
i8 117, label %122
], !dbg !1127
122: ; preds = %121, %121
switch i32 %104, label %284 [
i32 0, label %123
i32 1, label %152
i32 2, label %199
i32 3, label %246
], !dbg !1128
123: ; preds = %122
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1130, metadata !DIExpression()) #5, !dbg !1136
call void @llvm.dbg.value(metadata i32 %107, metadata !1135, metadata !DIExpression()) #5, !dbg !1136
%124 = sext i32 %107 to i64, !dbg !1140
%125 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %97, i64 %124, i32 6, !dbg !1142
%126 = load i8, i8* %125, align 4, !dbg !1142, !tbaa !1082
switch i8 %126, label %143 [
i8 65, label %127
i8 117, label %142
], !dbg !1143
127: ; preds = %123
%128 = load %struct._zval_struct*, %struct._zval_struct** %55, align 8, !dbg !1144, !tbaa !1049
%129 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %97, i64 %124, i32 1, i32 0, !dbg !1144
%130 = load i32, i32* %129, align 8, !dbg !1144, !tbaa !1059
%131 = zext i32 %130 to i64, !dbg !1144
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()) #5, !dbg !1145
%132 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %128, i64 %131, i32 1, !dbg !1147
%133 = bitcast %union.anon.9* %132 to i8*, !dbg !1148
%134 = load i8, i8* %133, align 8, !dbg !1148, !tbaa !1059
%135 = icmp eq i8 %134, 4, !dbg !1149
br i1 %135, label %136, label %143, !dbg !1150
136: ; preds = %127
%137 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %128, i64 %131, i32 0, i32 0, !dbg !1151
%138 = load i64, i64* %137, align 8, !dbg !1151, !tbaa !1059
%139 = icmp slt i64 %138, 194, !dbg !1152
br i1 %139, label %140, label %143, !dbg !1153
140: ; preds = %136
%141 = trunc i64 %138 to i8, !dbg !1154
br label %144, !dbg !1156
142: ; preds = %123
tail call void (i32, i8*, ...) @zend_error(i32 1, i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.19, i64 0, i64 0)) #5, !dbg !1157
br label %144, !dbg !1160
143: ; preds = %136, %127, %123
tail call void (i32, i8*, ...) @zend_error(i32 1, i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.20, i64 0, i64 0)) #5, !dbg !1161
br label %144
144: ; preds = %140, %142, %143
%145 = phi i8 [ %141, %140 ], [ 0, %142 ], [ 0, %143 ], !dbg !1136
call void @llvm.dbg.value(metadata i8 %145, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
%146 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1163, !tbaa !1080
%147 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %146, i64 %108, i32 1, i32 0, !dbg !1163
store i32 0, i32* %147, align 8, !dbg !1163, !tbaa !1059
%148 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1163, !tbaa !1080
%149 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %148, i64 %108, i32 2, i32 0, !dbg !1163
store i32 0, i32* %149, align 4, !dbg !1163, !tbaa !1059
%150 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1163, !tbaa !1080
%151 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %150, i64 %108, i32 3, i32 0, !dbg !1163
store i32 0, i32* %151, align 8, !dbg !1163, !tbaa !1059
br label %274, !dbg !1165
152: ; preds = %122
%153 = tail call i32 @zend_get_opcode_flags(i8 zeroext %99) #5, !dbg !1166
call void @llvm.dbg.value(metadata i32 %153, metadata !1010, metadata !DIExpression(DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1108
%154 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1169, !tbaa !1080
%155 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %154, i64 %108, i32 7, !dbg !1170
%156 = load i8, i8* %155, align 1, !dbg !1170, !tbaa !1171
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1172, metadata !DIExpression()), !dbg !1180
call void @llvm.dbg.value(metadata i32 %107, metadata !1177, metadata !DIExpression()), !dbg !1180
call void @llvm.dbg.value(metadata i32 %153, metadata !1178, metadata !DIExpression(DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1180
call void @llvm.dbg.value(metadata i8 %156, metadata !1179, metadata !DIExpression(DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value)), !dbg !1180
%157 = and i32 %153, 32, !dbg !1182
%158 = icmp eq i32 %157, 0, !dbg !1182
br i1 %158, label %159, label %174, !dbg !1184
159: ; preds = %152
%160 = icmp eq i8 %156, 1
%161 = load %struct._zval_struct*, %struct._zval_struct** %55, align 8, !dbg !1185, !tbaa !1049
%162 = sext i32 %107 to i64, !dbg !1185
%163 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %154, i64 %162, i32 1, i32 0
%164 = load i32, i32* %163, align 8, !dbg !1185, !tbaa !1059
%165 = zext i32 %164 to i64
%166 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %161, i64 %165, i32 1
%167 = bitcast %union.anon.9* %166 to i8*
%168 = load i8, i8* %167, align 8, !dbg !1185, !tbaa !1059
br i1 %160, label %169, label %184, !dbg !1186
169: ; preds = %159
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()), !dbg !1187
%170 = icmp eq i8 %168, 1, !dbg !1192
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
%171 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %154, i64 %108, i32 1, i32 0, !dbg !1193
br i1 %170, label %188, label %172, !dbg !1194
172: ; preds = %169
%173 = load i32, i32* %171, align 8, !dbg !1193
call void @llvm.dbg.value(metadata i32 undef, metadata !1195, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1200, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata i32 %107, metadata !1201, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata i32 %153, metadata !1202, metadata !DIExpression(DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1204
call void @llvm.dbg.value(metadata i32 undef, metadata !1203, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()), !dbg !1206
br label %191, !dbg !1210
174: ; preds = %152
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
%175 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %154, i64 %108, i32 1, i32 0, !dbg !1193
call void @llvm.dbg.value(metadata i32 undef, metadata !1195, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1200, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata i32 %107, metadata !1201, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata i32 %153, metadata !1202, metadata !DIExpression(DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1204
call void @llvm.dbg.value(metadata i32 undef, metadata !1203, metadata !DIExpression()), !dbg !1204
%176 = load %struct._zval_struct*, %struct._zval_struct** %55, align 8, !dbg !1211, !tbaa !1049
%177 = sext i32 %107 to i64, !dbg !1211
%178 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %154, i64 %177, i32 1, i32 0, !dbg !1211
%179 = load i32, i32* %178, align 8, !dbg !1211, !tbaa !1059
%180 = zext i32 %179 to i64, !dbg !1211
%181 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %176, i64 %180, i32 0, i32 0, !dbg !1211
%182 = load i64, i64* %181, align 8, !dbg !1211, !tbaa !1059
%183 = trunc i64 %182 to i32, !dbg !1211
call void @llvm.dbg.value(metadata i32 %183, metadata !1195, metadata !DIExpression()), !dbg !1204
br label %191, !dbg !1213
184: ; preds = %159
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
%185 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %154, i64 %108, i32 1, i32 0, !dbg !1193
%186 = load i32, i32* %185, align 8, !dbg !1193
call void @llvm.dbg.value(metadata i32 undef, metadata !1195, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1200, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata i32 %107, metadata !1201, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata i32 %153, metadata !1202, metadata !DIExpression(DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1204
call void @llvm.dbg.value(metadata i32 undef, metadata !1203, metadata !DIExpression()), !dbg !1204
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()), !dbg !1206
%187 = icmp eq i8 %168, 1, !dbg !1214
br i1 %187, label %188, label %191, !dbg !1210
188: ; preds = %169, %184
%189 = phi i32* [ %185, %184 ], [ %171, %169 ]
%190 = phi i8 [ %156, %184 ], [ 0, %169 ]
br label %191, !dbg !1210
191: ; preds = %188, %184, %172, %174
%192 = phi i32* [ %175, %174 ], [ %189, %188 ], [ %185, %184 ], [ %171, %172 ]
%193 = phi i8 [ 0, %174 ], [ %190, %188 ], [ %156, %184 ], [ 1, %172 ]
%194 = phi i32 [ %183, %174 ], [ 0, %188 ], [ %186, %184 ], [ %173, %172 ]
call void @llvm.dbg.value(metadata i32 %194, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
store i32 0, i32* %192, align 8, !dbg !1215, !tbaa !1059
%195 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1215, !tbaa !1080
%196 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %195, i64 %108, i32 2, i32 0, !dbg !1215
store i32 0, i32* %196, align 4, !dbg !1215, !tbaa !1059
%197 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1215, !tbaa !1080
%198 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %197, i64 %108, i32 3, i32 0, !dbg !1215
store i32 0, i32* %198, align 8, !dbg !1215, !tbaa !1059
br label %274, !dbg !1217
199: ; preds = %122
%200 = tail call i32 @zend_get_opcode_flags(i8 zeroext %99) #5, !dbg !1218
call void @llvm.dbg.value(metadata i32 %200, metadata !1010, metadata !DIExpression(DW_OP_constu, 8, DW_OP_shr, DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1108
%201 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1221, !tbaa !1080
%202 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %201, i64 %108, i32 7, !dbg !1222
%203 = load i8, i8* %202, align 1, !dbg !1222, !tbaa !1171
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1172, metadata !DIExpression()), !dbg !1223
call void @llvm.dbg.value(metadata i32 %107, metadata !1177, metadata !DIExpression()), !dbg !1223
call void @llvm.dbg.value(metadata i32 %200, metadata !1178, metadata !DIExpression(DW_OP_constu, 8, DW_OP_shr, DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1223
call void @llvm.dbg.value(metadata i8 %203, metadata !1179, metadata !DIExpression(DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value)), !dbg !1223
%204 = and i32 %200, 8192, !dbg !1225
%205 = icmp eq i32 %204, 0, !dbg !1225
br i1 %205, label %206, label %221, !dbg !1226
206: ; preds = %199
%207 = icmp eq i8 %203, 1
%208 = load %struct._zval_struct*, %struct._zval_struct** %55, align 8, !dbg !1227, !tbaa !1049
%209 = sext i32 %107 to i64, !dbg !1227
%210 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %201, i64 %209, i32 1, i32 0
%211 = load i32, i32* %210, align 8, !dbg !1227, !tbaa !1059
%212 = zext i32 %211 to i64
%213 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %208, i64 %212, i32 1
%214 = bitcast %union.anon.9* %213 to i8*
%215 = load i8, i8* %214, align 8, !dbg !1227, !tbaa !1059
br i1 %207, label %216, label %231, !dbg !1228
216: ; preds = %206
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()), !dbg !1229
%217 = icmp eq i8 %215, 1, !dbg !1231
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
%218 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %201, i64 %108, i32 1, i32 0, !dbg !1232
br i1 %217, label %235, label %219, !dbg !1233
219: ; preds = %216
%220 = load i32, i32* %218, align 8, !dbg !1232
call void @llvm.dbg.value(metadata i32 undef, metadata !1195, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1200, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata i32 %107, metadata !1201, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata i32 %200, metadata !1202, metadata !DIExpression(DW_OP_constu, 8, DW_OP_shr, DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1234
call void @llvm.dbg.value(metadata i32 undef, metadata !1203, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()), !dbg !1236
br label %238, !dbg !1238
221: ; preds = %199
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
%222 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %201, i64 %108, i32 1, i32 0, !dbg !1232
call void @llvm.dbg.value(metadata i32 undef, metadata !1195, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1200, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata i32 %107, metadata !1201, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata i32 %200, metadata !1202, metadata !DIExpression(DW_OP_constu, 8, DW_OP_shr, DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1234
call void @llvm.dbg.value(metadata i32 undef, metadata !1203, metadata !DIExpression()), !dbg !1234
%223 = load %struct._zval_struct*, %struct._zval_struct** %55, align 8, !dbg !1239, !tbaa !1049
%224 = sext i32 %107 to i64, !dbg !1239
%225 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %201, i64 %224, i32 1, i32 0, !dbg !1239
%226 = load i32, i32* %225, align 8, !dbg !1239, !tbaa !1059
%227 = zext i32 %226 to i64, !dbg !1239
%228 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %223, i64 %227, i32 0, i32 0, !dbg !1239
%229 = load i64, i64* %228, align 8, !dbg !1239, !tbaa !1059
%230 = trunc i64 %229 to i32, !dbg !1239
call void @llvm.dbg.value(metadata i32 %230, metadata !1195, metadata !DIExpression()), !dbg !1234
br label %238, !dbg !1240
231: ; preds = %206
call void @llvm.dbg.value(metadata i32 0, metadata !1001, metadata !DIExpression(DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
%232 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %201, i64 %108, i32 1, i32 0, !dbg !1232
%233 = load i32, i32* %232, align 8, !dbg !1232
call void @llvm.dbg.value(metadata i32 undef, metadata !1195, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1200, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata i32 %107, metadata !1201, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata i32 %200, metadata !1202, metadata !DIExpression(DW_OP_constu, 8, DW_OP_shr, DW_OP_constu, 255, DW_OP_and, DW_OP_stack_value)), !dbg !1234
call void @llvm.dbg.value(metadata i32 undef, metadata !1203, metadata !DIExpression()), !dbg !1234
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()), !dbg !1236
%234 = icmp eq i8 %215, 1, !dbg !1241
br i1 %234, label %235, label %238, !dbg !1238
235: ; preds = %216, %231
%236 = phi i32* [ %232, %231 ], [ %218, %216 ]
%237 = phi i8 [ %203, %231 ], [ 0, %216 ]
br label %238, !dbg !1238
238: ; preds = %235, %231, %219, %221
%239 = phi i32* [ %222, %221 ], [ %236, %235 ], [ %232, %231 ], [ %218, %219 ]
%240 = phi i8 [ 0, %221 ], [ %237, %235 ], [ %203, %231 ], [ 1, %219 ]
%241 = phi i32 [ %230, %221 ], [ 0, %235 ], [ %233, %231 ], [ %220, %219 ]
call void @llvm.dbg.value(metadata i32 %241, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
store i32 0, i32* %239, align 8, !dbg !1242, !tbaa !1059
%242 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1242, !tbaa !1080
%243 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %242, i64 %108, i32 2, i32 0, !dbg !1242
store i32 0, i32* %243, align 4, !dbg !1242, !tbaa !1059
%244 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1242, !tbaa !1080
%245 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %244, i64 %108, i32 3, i32 0, !dbg !1242
store i32 0, i32* %245, align 8, !dbg !1242, !tbaa !1059
br label %274, !dbg !1244
246: ; preds = %122
call void @llvm.dbg.value(metadata %struct._zend_op_array* %0, metadata !1245, metadata !DIExpression()) #5, !dbg !1249
call void @llvm.dbg.value(metadata i32 %107, metadata !1248, metadata !DIExpression()) #5, !dbg !1249
%247 = sext i32 %107 to i64, !dbg !1253
%248 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %97, i64 %247, i32 7, !dbg !1255
%249 = load i8, i8* %248, align 1, !dbg !1255, !tbaa !1171
%250 = icmp eq i8 %249, 1, !dbg !1256
br i1 %250, label %251, label %264, !dbg !1257
251: ; preds = %246
%252 = load %struct._zval_struct*, %struct._zval_struct** %55, align 8, !dbg !1258, !tbaa !1049
%253 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %97, i64 %247, i32 1, i32 0, !dbg !1258
%254 = load i32, i32* %253, align 8, !dbg !1258, !tbaa !1059
%255 = zext i32 %254 to i64, !dbg !1258
call void @llvm.dbg.value(metadata %struct._zval_struct* undef, metadata !1050, metadata !DIExpression()) #5, !dbg !1259
%256 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %252, i64 %255, i32 1, !dbg !1261
%257 = bitcast %union.anon.9* %256 to i8*, !dbg !1262
%258 = load i8, i8* %257, align 8, !dbg !1262, !tbaa !1059
%259 = icmp eq i8 %258, 4, !dbg !1263
br i1 %259, label %260, label %264, !dbg !1264
260: ; preds = %251
%261 = getelementptr inbounds %struct._zval_struct, %struct._zval_struct* %252, i64 %255, i32 0, i32 0, !dbg !1265
%262 = load i64, i64* %261, align 8, !dbg !1265, !tbaa !1059
%263 = trunc i64 %262 to i32, !dbg !1265
br label %266, !dbg !1267
264: ; preds = %251, %246
tail call void (i32, i8*, ...) @zend_error(i32 1, i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.21, i64 0, i64 0)) #5, !dbg !1268
%265 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1269, !tbaa !1080
br label %266, !dbg !1271
266: ; preds = %260, %264
%267 = phi %struct._zend_op* [ %97, %260 ], [ %265, %264 ], !dbg !1269
%268 = phi i32 [ %263, %260 ], [ 0, %264 ], !dbg !1249
call void @llvm.dbg.value(metadata i32 %268, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
%269 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %267, i64 %108, i32 1, i32 0, !dbg !1269
store i32 0, i32* %269, align 8, !dbg !1269, !tbaa !1059
%270 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1269, !tbaa !1080
%271 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %270, i64 %108, i32 2, i32 0, !dbg !1269
store i32 0, i32* %271, align 4, !dbg !1269, !tbaa !1059
%272 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1269, !tbaa !1080
%273 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %272, i64 %108, i32 3, i32 0, !dbg !1269
store i32 0, i32* %273, align 8, !dbg !1269, !tbaa !1059
br label %274, !dbg !1272
274: ; preds = %144, %238, %266, %191
%275 = phi i32 [ %98, %191 ], [ %268, %266 ], [ %98, %238 ], [ %98, %144 ]
%276 = phi i8 [ %99, %191 ], [ %99, %266 ], [ %99, %238 ], [ %145, %144 ]
%277 = phi i32 [ %100, %191 ], [ %100, %266 ], [ %241, %238 ], [ %100, %144 ]
%278 = phi i32 [ %194, %191 ], [ %101, %266 ], [ %101, %238 ], [ %101, %144 ]
%279 = phi i8 [ %193, %191 ], [ %102, %266 ], [ %102, %238 ], [ %102, %144 ]
%280 = phi i8 [ %106, %191 ], [ %106, %266 ], [ %240, %238 ], [ %106, %144 ]
%281 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1273, !tbaa !1080
%282 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %281, i64 %108, i32 6, !dbg !1273
%283 = bitcast i8* %282 to i32*, !dbg !1273
store i32 0, i32* %283, align 4, !dbg !1273
br label %284, !dbg !1274
284: ; preds = %274, %122
%285 = phi %struct._zend_op* [ %97, %122 ], [ %281, %274 ]
%286 = phi i32 [ %98, %122 ], [ %275, %274 ], !dbg !1108
%287 = phi i8 [ %99, %122 ], [ %276, %274 ], !dbg !1108
%288 = phi i32 [ %100, %122 ], [ %277, %274 ], !dbg !1108
%289 = phi i32 [ %101, %122 ], [ %278, %274 ], !dbg !1108
%290 = phi i8 [ %102, %122 ], [ %279, %274 ], !dbg !1108
%291 = phi i8 [ %106, %122 ], [ %280, %274 ], !dbg !1108
call void @llvm.dbg.value(metadata i8 %291, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %290, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %289, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %288, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %287, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %286, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
%292 = add i32 %104, 1, !dbg !1274
call void @llvm.dbg.value(metadata i32 %292, metadata !1008, metadata !DIExpression()), !dbg !1108
br label %293, !dbg !1275
293: ; preds = %118, %121, %284, %120
%294 = phi %struct._zend_op* [ %285, %284 ], [ %97, %120 ], [ %97, %118 ], [ %97, %121 ], !dbg !1276
%295 = phi i32 [ %286, %284 ], [ %98, %120 ], [ %98, %118 ], [ %98, %121 ], !dbg !1113
%296 = phi i8 [ %287, %284 ], [ %99, %120 ], [ %99, %118 ], [ %99, %121 ], !dbg !1108
%297 = phi i32 [ %288, %284 ], [ %100, %120 ], [ %100, %118 ], [ %100, %121 ], !dbg !1114
%298 = phi i32 [ %289, %284 ], [ %101, %120 ], [ %101, %118 ], [ %101, %121 ], !dbg !1114
%299 = phi i8 [ %290, %284 ], [ %102, %120 ], [ %102, %118 ], [ %102, %121 ], !dbg !1114
%300 = phi i32 [ %292, %284 ], [ %104, %120 ], [ %104, %118 ], [ %104, %121 ], !dbg !1108
%301 = phi i8 [ %291, %284 ], [ %106, %120 ], [ %106, %118 ], [ %106, %121 ], !dbg !1114
call void @llvm.dbg.value(metadata i8 %301, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %300, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i8 %299, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %298, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %297, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %296, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %295, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
%302 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %294, i64 %108, i32 6, !dbg !1278
%303 = load i8, i8* %302, align 4, !dbg !1278, !tbaa !1082
switch i8 %303, label %306 [
i8 61, label %304
i8 59, label %304
i8 69, label %304
i8 112, label %304
i8 113, label %304
i8 118, label %304
i8 -128, label %304
], !dbg !1279
304: ; preds = %293, %293, %293, %293, %293, %293, %293
%305 = add i32 %105, 1, !dbg !1280
call void @llvm.dbg.value(metadata i32 %305, metadata !1009, metadata !DIExpression()), !dbg !1108
br label %306, !dbg !1282
306: ; preds = %293, %304
%307 = phi i32 [ %305, %304 ], [ %105, %293 ], !dbg !1108
call void @llvm.dbg.value(metadata i32 %307, metadata !1009, metadata !DIExpression()), !dbg !1108
switch i8 %303, label %308 [
i8 60, label %310
i8 -127, label %310
i8 -126, label %310
i8 -125, label %310
], !dbg !1283
308: ; preds = %306, %310
%309 = phi i32 [ %307, %306 ], [ %311, %310 ]
br label %96, !dbg !1108, !llvm.loop !1285
310: ; preds = %306, %306, %306, %306
%311 = add i32 %307, -1, !dbg !1287
call void @llvm.dbg.value(metadata i32 %311, metadata !1009, metadata !DIExpression()), !dbg !1108
br label %308, !dbg !1289
312: ; preds = %118, %112
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
%313 = zext i32 %107 to i64, !dbg !1116
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %98, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %99, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %100, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %101, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1108
call void @llvm.dbg.value(metadata i8 %102, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1108
call void @llvm.dbg.value(metadata i32 %104, metadata !1008, metadata !DIExpression()), !dbg !1108
call void @llvm.dbg.value(metadata i8 %106, metadata !1001, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1108
%314 = icmp eq i32 %104, 0, !dbg !1290
br i1 %314, label %329, label %315, !dbg !1292
315: ; preds = %312
store i8 %99, i8* %109, align 4, !dbg !1293, !tbaa !1082
%316 = icmp eq i32 %104, 1, !dbg !1295
br i1 %316, label %329, label %317, !dbg !1297
317: ; preds = %315
%318 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %97, i64 %313, i32 7, !dbg !1298
store i8 %102, i8* %318, align 1, !dbg !1300, !tbaa !1171
%319 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %97, i64 %313, i32 1, i32 0, !dbg !1301
store i32 %101, i32* %319, align 8, !dbg !1301, !tbaa.struct !1302
%320 = icmp ugt i32 %104, 2, !dbg !1304
br i1 %320, label %321, label %329, !dbg !1306
321: ; preds = %317
%322 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1307, !tbaa !1080
%323 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %322, i64 %313, i32 8, !dbg !1309
store i8 %106, i8* %323, align 2, !dbg !1310, !tbaa !1087
%324 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %322, i64 %313, i32 2, i32 0, !dbg !1311
store i32 %100, i32* %324, align 4, !dbg !1311, !tbaa.struct !1302
%325 = icmp eq i32 %104, 3, !dbg !1312
br i1 %325, label %329, label %326, !dbg !1314
326: ; preds = %321
%327 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1315, !tbaa !1080
%328 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %327, i64 %313, i32 4, !dbg !1317
store i32 %98, i32* %328, align 4, !dbg !1318, !tbaa !1319
br label %329, !dbg !1320
329: ; preds = %312, %317, %326, %321, %315, %82, %75, %66, %62, %56
%330 = load i8, i8* getelementptr inbounds (%struct._zend_ulopcodes_globals, %struct._zend_ulopcodes_globals* @ulopcodes_globals, i64 0, i32 1), align 1, !dbg !1321, !tbaa !941
%331 = icmp eq i8 %330, 0, !dbg !1321
br i1 %331, label %360, label %332, !dbg !1323
332: ; preds = %329
%333 = load %struct._zend_op*, %struct._zend_op** %54, align 8, !dbg !1324, !tbaa !1080
call void @llvm.dbg.value(metadata i8* undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !1332
call void @llvm.dbg.value(metadata i32 undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1332
call void @llvm.dbg.value(metadata i32 undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1332
call void @llvm.dbg.value(metadata i32 undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 128, 32)), !dbg !1332
call void @llvm.dbg.value(metadata i32 undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1332
call void @llvm.dbg.value(metadata i32 undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 192, 32)), !dbg !1332
%334 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %333, i64 %57, i32 6, !dbg !1334
%335 = load i8, i8* %334, align 1, !dbg !1334
call void @llvm.dbg.value(metadata i8 %335, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 224, 8)), !dbg !1332
call void @llvm.dbg.value(metadata i8 undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1332
call void @llvm.dbg.value(metadata i8 undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1332
call void @llvm.dbg.value(metadata i8 undef, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 248, 8)), !dbg !1332
call void @llvm.dbg.value(metadata i64 %57, metadata !1331, metadata !DIExpression()) #5, !dbg !1332
%336 = icmp ult i8 %335, -62, !dbg !1335
br i1 %336, label %337, label %358, !dbg !1337
337: ; preds = %332
%338 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %333, i64 %57, i32 9, !dbg !1334
%339 = load i8, i8* %338, align 1, !dbg !1334
call void @llvm.dbg.value(metadata i8 %339, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 248, 8)), !dbg !1332
%340 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %333, i64 %57, i32 8, !dbg !1334
%341 = load i8, i8* %340, align 1, !dbg !1334
call void @llvm.dbg.value(metadata i8 %341, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 240, 8)), !dbg !1332
%342 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %333, i64 %57, i32 7, !dbg !1334
%343 = load i8, i8* %342, align 1, !dbg !1334
call void @llvm.dbg.value(metadata i8 %343, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 232, 8)), !dbg !1332
%344 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %333, i64 %57, i32 4, !dbg !1334
%345 = load i32, i32* %344, align 1, !dbg !1334
call void @llvm.dbg.value(metadata i32 %345, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 160, 32)), !dbg !1332
%346 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %333, i64 %57, i32 3, i32 0, !dbg !1334
%347 = load i32, i32* %346, align 1, !dbg !1334
call void @llvm.dbg.value(metadata i32 %347, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 128, 32)), !dbg !1332
%348 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %333, i64 %57, i32 2, i32 0, !dbg !1334
%349 = load i32, i32* %348, align 1, !dbg !1334
call void @llvm.dbg.value(metadata i32 %349, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !1332
%350 = getelementptr inbounds %struct._zend_op, %struct._zend_op* %333, i64 %57, i32 1, i32 0, !dbg !1334
%351 = load i32, i32* %350, align 1, !dbg !1334
call void @llvm.dbg.value(metadata i32 %351, metadata !1326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !1332
%352 = tail call i8* @zend_get_opcode_name(i8 zeroext %335) #5, !dbg !1338
%353 = zext i8 %343 to i32, !dbg !1340
%354 = zext i8 %341 to i32, !dbg !1341
%355 = zext i8 %339 to i32, !dbg !1342
%356 = trunc i64 %57 to i32, !dbg !1343
%357 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.22, i64 0, i64 0), i32 %356, i8* %352, i32 %353, i32 %351, i32 %354, i32 %349, i32 %345, i32 %355, i32 %347) #5, !dbg !1343
br label %360, !dbg !1344
358: ; preds = %332
%359 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.23, i64 0, i64 0)) #5, !dbg !1345
br label %360
360: ; preds = %358, %337, %329
%361 = add nuw nsw i64 %57, 1, !dbg !1347
call void @llvm.dbg.value(metadata i64 %361, metadata !998, metadata !DIExpression()), !dbg !1074
%362 = load i32, i32* %50, align 4, !dbg !1075, !tbaa !1076
%363 = zext i32 %362 to i64, !dbg !1077
%364 = icmp ult i64 %361, %363, !dbg !1077
br i1 %364, label %56, label %365, !dbg !1078, !llvm.loop !1348
365: ; preds = %360, %49
%366 = load i8, i8* getelementptr inbounds (%struct._zend_ulopcodes_globals, %struct._zend_ulopcodes_globals* @ulopcodes_globals, i64 0, i32 1), align 1, !dbg !1350, !tbaa !941
%367 = icmp eq i8 %366, 0, !dbg !1350
br i1 %367, label %370, label %368, !dbg !1352
368: ; preds = %365
call void @llvm.dbg.value(metadata %struct._zend_op_array* undef, metadata !1353, metadata !DIExpression()) #5, !dbg !1356
%369 = tail call i64 (i8*, ...) @php_printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.24, i64 0, i64 0)) #5, !dbg !1359
br label %370, !dbg !1360
370: ; preds = %365, %368, %1
ret void, !dbg !1361
}
; Function Attrs: argmemonly nofree nounwind readonly
declare dso_local i32 @strcmp(i8* nocapture, i8* nocapture) local_unnamed_addr #4
declare !dbg !1362 dso_local i32 @zend_get_opcode_flags(i8 zeroext) local_unnamed_addr #3
; Function Attrs: norecurse nounwind readnone uwtable
define dso_local nonnull %struct._zend_module_entry* @get_module() local_unnamed_addr #0 !dbg !1365 {
ret %struct._zend_module_entry* @ulopcodes_module_entry, !dbg !1368
}
declare dso_local i32 @OnUpdateBool(%struct._zend_ini_entry*, %struct._zend_string*, i8*, i8*, i8*, i32) #3
declare !dbg !1369 dso_local i64 @php_printf(i8*, ...) local_unnamed_addr #3
declare !dbg !1373 dso_local void @zend_error(i32, i8*, ...) local_unnamed_addr #3
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
attributes #0 = { norecurse nounwind readnone uwtable "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nofree nosync nounwind readnone speculatable willreturn }
attributes #2 = { nounwind uwtable "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #3 = { "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #4 = { argmemonly nofree nounwind readonly "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #5 = { nounwind }
attributes #6 = { nounwind readonly }
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!892, !893, !894}
!llvm.ident = !{!895}
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
!1 = distinct !DIGlobalVariable(name: "ulopcodes_globals", scope: !2, file: !3, line: 36, type: !886, isLocal: false, isDefinition: true)
!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "Debian clang version 12.0.0-++20201103084905+7f34aca083b-1~exp1~20201103195548.3577", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !22, splitDebugInlining: false, nameTableKind: None)
!3 = !DIFile(filename: "ulopcodes.c", directory: "/home/ab/sail/project/sail-php-driver")
!4 = !{!5, !16}
!5 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "_zend_prop_purpose", file: !6, line: 97, baseType: !7, size: 32, elements: !8)
!6 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_object_handlers.h", directory: "")
!7 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
!8 = !{!9, !10, !11, !12, !13, !14, !15}
!9 = !DIEnumerator(name: "ZEND_PROP_PURPOSE_DEBUG", value: 0, isUnsigned: true)
!10 = !DIEnumerator(name: "ZEND_PROP_PURPOSE_ARRAY_CAST", value: 1, isUnsigned: true)
!11 = !DIEnumerator(name: "ZEND_PROP_PURPOSE_SERIALIZE", value: 2, isUnsigned: true)
!12 = !DIEnumerator(name: "ZEND_PROP_PURPOSE_VAR_EXPORT", value: 3, isUnsigned: true)
!13 = !DIEnumerator(name: "ZEND_PROP_PURPOSE_JSON", value: 4, isUnsigned: true)
!14 = !DIEnumerator(name: "_ZEND_PROP_PURPOSE_ARRAY_KEY_EXISTS", value: 5, isUnsigned: true)
!15 = !DIEnumerator(name: "_ZEND_PROP_PURPOSE_NON_EXHAUSTIVE_ENUM", value: 6, isUnsigned: true)
!16 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !17, line: 52, baseType: !18, size: 32, elements: !19)
!17 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_types.h", directory: "")
!18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!19 = !{!20, !21}
!20 = !DIEnumerator(name: "SUCCESS", value: 0)
!21 = !DIEnumerator(name: "FAILURE", value: -1)
!22 = !{!23, !782, !784, !793, !0, !869}
!23 = !DIGlobalVariableExpression(var: !24, expr: !DIExpression())
!24 = distinct !DIGlobalVariable(name: "ulopcodes_functions", scope: !2, file: !3, line: 111, type: !25, isLocal: false, isDefinition: true)
!25 = !DICompositeType(tag: DW_TAG_array_type, baseType: !26, size: 512, elements: !780)
!26 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !27)
!27 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_function_entry", file: !28, line: 40, baseType: !29)
!28 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_API.h", directory: "")
!29 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_function_entry", file: !28, line: 34, size: 256, elements: !30)
!30 = !{!31, !35, !775, !778, !779}
!31 = !DIDerivedType(tag: DW_TAG_member, name: "fname", scope: !29, file: !28, line: 35, baseType: !32, size: 64)
!32 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !33, size: 64)
!33 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !34)
!34 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char)
!35 = !DIDerivedType(tag: DW_TAG_member, name: "handler", scope: !29, file: !28, line: 36, baseType: !36, size: 64, offset: 64)
!36 = !DIDerivedType(tag: DW_TAG_typedef, name: "zif_handler", file: !37, line: 461, baseType: !38)
!37 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_compile.h", directory: "")
!38 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !39, size: 64)
!39 = !DISubroutineType(types: !40)
!40 = !{null, !41, !79}
!41 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !42, size: 64)
!42 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_execute_data", file: !17, line: 85, baseType: !43)
!43 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_execute_data", file: !37, line: 503, size: 576, elements: !44)
!44 = !{!45, !77, !78, !770, !771, !772, !773, !774}
!45 = !DIDerivedType(tag: DW_TAG_member, name: "opline", scope: !43, file: !37, line: 504, baseType: !46, size: 64)
!46 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !47, size: 64)
!47 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !48)
!48 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_op", file: !37, line: 50, baseType: !49)
!49 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_op", file: !37, line: 136, size: 256, elements: !50)
!50 = !{!51, !54, !67, !68, !69, !70, !71, !74, !75, !76}
!51 = !DIDerivedType(tag: DW_TAG_member, name: "handler", scope: !49, file: !37, line: 137, baseType: !52, size: 64)
!52 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !53, size: 64)
!53 = !DIDerivedType(tag: DW_TAG_const_type, baseType: null)
!54 = !DIDerivedType(tag: DW_TAG_member, name: "op1", scope: !49, file: !37, line: 138, baseType: !55, size: 32, offset: 64)
!55 = !DIDerivedType(tag: DW_TAG_typedef, name: "znode_op", file: !37, line: 76, baseType: !56)
!56 = distinct !DICompositeType(tag: DW_TAG_union_type, name: "_znode_op", file: !37, line: 63, size: 32, elements: !57)
!57 = !{!58, !63, !64, !65, !66}
!58 = !DIDerivedType(tag: DW_TAG_member, name: "constant", scope: !56, file: !37, line: 64, baseType: !59, size: 32)
!59 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !60, line: 26, baseType: !61)
!60 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "")
!61 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !62, line: 42, baseType: !7)
!62 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "")
!63 = !DIDerivedType(tag: DW_TAG_member, name: "var", scope: !56, file: !37, line: 65, baseType: !59, size: 32)
!64 = !DIDerivedType(tag: DW_TAG_member, name: "num", scope: !56, file: !37, line: 66, baseType: !59, size: 32)
!65 = !DIDerivedType(tag: DW_TAG_member, name: "opline_num", scope: !56, file: !37, line: 67, baseType: !59, size: 32)
!66 = !DIDerivedType(tag: DW_TAG_member, name: "jmp_offset", scope: !56, file: !37, line: 71, baseType: !59, size: 32)
!67 = !DIDerivedType(tag: DW_TAG_member, name: "op2", scope: !49, file: !37, line: 139, baseType: !55, size: 32, offset: 96)
!68 = !DIDerivedType(tag: DW_TAG_member, name: "result", scope: !49, file: !37, line: 140, baseType: !55, size: 32, offset: 128)
!69 = !DIDerivedType(tag: DW_TAG_member, name: "extended_value", scope: !49, file: !37, line: 141, baseType: !59, size: 32, offset: 160)
!70 = !DIDerivedType(tag: DW_TAG_member, name: "lineno", scope: !49, file: !37, line: 142, baseType: !59, size: 32, offset: 192)
!71 = !DIDerivedType(tag: DW_TAG_member, name: "opcode", scope: !49, file: !37, line: 143, baseType: !72, size: 8, offset: 224)
!72 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_uchar", file: !17, line: 50, baseType: !73)
!73 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char)
!74 = !DIDerivedType(tag: DW_TAG_member, name: "op1_type", scope: !49, file: !37, line: 144, baseType: !72, size: 8, offset: 232)
!75 = !DIDerivedType(tag: DW_TAG_member, name: "op2_type", scope: !49, file: !37, line: 145, baseType: !72, size: 8, offset: 240)
!76 = !DIDerivedType(tag: DW_TAG_member, name: "result_type", scope: !49, file: !37, line: 146, baseType: !72, size: 8, offset: 248)
!77 = !DIDerivedType(tag: DW_TAG_member, name: "call", scope: !43, file: !37, line: 505, baseType: !41, size: 64, offset: 64)
!78 = !DIDerivedType(tag: DW_TAG_member, name: "return_value", scope: !43, file: !37, line: 506, baseType: !79, size: 64, offset: 128)
!79 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !80, size: 64)
!80 = !DIDerivedType(tag: DW_TAG_typedef, name: "zval", file: !17, line: 87, baseType: !81)
!81 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zval_struct", file: !17, line: 196, size: 128, elements: !82)
!82 = !{!83, !741, !756}
!83 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !81, file: !17, line: 197, baseType: !84, size: 64)
!84 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_value", file: !17, line: 194, baseType: !85)
!85 = distinct !DICompositeType(tag: DW_TAG_union_type, name: "_zend_value", file: !17, line: 176, size: 64, elements: !86)
!86 = !{!87, !94, !96, !110, !128, !164, !704, !713, !726, !732, !733, !734, !735, !736}
!87 = !DIDerivedType(tag: DW_TAG_member, name: "lval", scope: !85, file: !17, line: 177, baseType: !88, size: 64)
!88 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_long", file: !89, line: 31, baseType: !90)
!89 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_long.h", directory: "")
!90 = !DIDerivedType(tag: DW_TAG_typedef, name: "int64_t", file: !91, line: 27, baseType: !92)
!91 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "")
!92 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int64_t", file: !62, line: 44, baseType: !93)
!93 = !DIBasicType(name: "long int", size: 64, encoding: DW_ATE_signed)
!94 = !DIDerivedType(tag: DW_TAG_member, name: "dval", scope: !85, file: !17, line: 178, baseType: !95, size: 64)
!95 = !DIBasicType(name: "double", size: 64, encoding: DW_ATE_float)
!96 = !DIDerivedType(tag: DW_TAG_member, name: "counted", scope: !85, file: !17, line: 179, baseType: !97, size: 64)
!97 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !98, size: 64)
!98 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_refcounted", file: !17, line: 89, baseType: !99)
!99 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_refcounted", file: !17, line: 231, size: 64, elements: !100)
!100 = !{!101}
!101 = !DIDerivedType(tag: DW_TAG_member, name: "gc", scope: !99, file: !17, line: 232, baseType: !102, size: 64)
!102 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_refcounted_h", file: !17, line: 229, baseType: !103)
!103 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_refcounted_h", file: !17, line: 224, size: 64, elements: !104)
!104 = !{!105, !106}
!105 = !DIDerivedType(tag: DW_TAG_member, name: "refcount", scope: !103, file: !17, line: 225, baseType: !59, size: 32)
!106 = !DIDerivedType(tag: DW_TAG_member, name: "u", scope: !103, file: !17, line: 228, baseType: !107, size: 32, offset: 32)
!107 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !103, file: !17, line: 226, size: 32, elements: !108)
!108 = !{!109}
!109 = !DIDerivedType(tag: DW_TAG_member, name: "type_info", scope: !107, file: !17, line: 227, baseType: !59, size: 32)
!110 = !DIDerivedType(tag: DW_TAG_member, name: "str", scope: !85, file: !17, line: 180, baseType: !111, size: 64)
!111 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !112, size: 64)
!112 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_string", file: !17, line: 90, baseType: !113)
!113 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_string", file: !17, line: 235, size: 256, elements: !114)
!114 = !{!115, !116, !121, !124}
!115 = !DIDerivedType(tag: DW_TAG_member, name: "gc", scope: !113, file: !17, line: 236, baseType: !102, size: 64)
!116 = !DIDerivedType(tag: DW_TAG_member, name: "h", scope: !113, file: !17, line: 237, baseType: !117, size: 64, offset: 64)
!117 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_ulong", file: !89, line: 32, baseType: !118)
!118 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint64_t", file: !60, line: 27, baseType: !119)
!119 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint64_t", file: !62, line: 45, baseType: !120)
!120 = !DIBasicType(name: "long unsigned int", size: 64, encoding: DW_ATE_unsigned)
!121 = !DIDerivedType(tag: DW_TAG_member, name: "len", scope: !113, file: !17, line: 238, baseType: !122, size: 64, offset: 128)
!122 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_t", file: !123, line: 46, baseType: !120)
!123 = !DIFile(filename: "/usr/lib/llvm-12/lib/clang/12.0.0/include/stddef.h", directory: "")
!124 = !DIDerivedType(tag: DW_TAG_member, name: "val", scope: !113, file: !17, line: 239, baseType: !125, size: 8, offset: 192)
!125 = !DICompositeType(tag: DW_TAG_array_type, baseType: !34, size: 8, elements: !126)
!126 = !{!127}
!127 = !DISubrange(count: 1)
!128 = !DIDerivedType(tag: DW_TAG_member, name: "arr", scope: !85, file: !17, line: 181, baseType: !129, size: 64)
!129 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !130, size: 64)
!130 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_array", file: !17, line: 91, baseType: !131)
!131 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_array", file: !17, line: 250, size: 448, elements: !132)
!132 = !{!133, !134, !145, !146, !154, !155, !156, !157, !158, !159}
!133 = !DIDerivedType(tag: DW_TAG_member, name: "gc", scope: !131, file: !17, line: 251, baseType: !102, size: 64)
!134 = !DIDerivedType(tag: DW_TAG_member, name: "u", scope: !131, file: !17, line: 261, baseType: !135, size: 32, offset: 64)
!135 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !131, file: !17, line: 252, size: 32, elements: !136)
!136 = !{!137, !144}
!137 = !DIDerivedType(tag: DW_TAG_member, name: "v", scope: !135, file: !17, line: 259, baseType: !138, size: 32)
!138 = distinct !DICompositeType(tag: DW_TAG_structure_type, scope: !135, file: !17, line: 253, size: 32, elements: !139)
!139 = !{!140, !141, !142, !143}
!140 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !138, file: !17, line: 254, baseType: !72, size: 8)
!141 = !DIDerivedType(tag: DW_TAG_member, name: "_unused", scope: !138, file: !17, line: 254, baseType: !72, size: 8, offset: 8)
!142 = !DIDerivedType(tag: DW_TAG_member, name: "nIteratorsCount", scope: !138, file: !17, line: 254, baseType: !72, size: 8, offset: 16)
!143 = !DIDerivedType(tag: DW_TAG_member, name: "_unused2", scope: !138, file: !17, line: 254, baseType: !72, size: 8, offset: 24)
!144 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !135, file: !17, line: 260, baseType: !59, size: 32)
!145 = !DIDerivedType(tag: DW_TAG_member, name: "nTableMask", scope: !131, file: !17, line: 262, baseType: !59, size: 32, offset: 96)
!146 = !DIDerivedType(tag: DW_TAG_member, name: "arData", scope: !131, file: !17, line: 263, baseType: !147, size: 64, offset: 128)
!147 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !148, size: 64)
!148 = !DIDerivedType(tag: DW_TAG_typedef, name: "Bucket", file: !17, line: 246, baseType: !149)
!149 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_Bucket", file: !17, line: 242, size: 256, elements: !150)
!150 = !{!151, !152, !153}
!151 = !DIDerivedType(tag: DW_TAG_member, name: "val", scope: !149, file: !17, line: 243, baseType: !80, size: 128)
!152 = !DIDerivedType(tag: DW_TAG_member, name: "h", scope: !149, file: !17, line: 244, baseType: !117, size: 64, offset: 128)
!153 = !DIDerivedType(tag: DW_TAG_member, name: "key", scope: !149, file: !17, line: 245, baseType: !111, size: 64, offset: 192)
!154 = !DIDerivedType(tag: DW_TAG_member, name: "nNumUsed", scope: !131, file: !17, line: 264, baseType: !59, size: 32, offset: 192)
!155 = !DIDerivedType(tag: DW_TAG_member, name: "nNumOfElements", scope: !131, file: !17, line: 265, baseType: !59, size: 32, offset: 224)
!156 = !DIDerivedType(tag: DW_TAG_member, name: "nTableSize", scope: !131, file: !17, line: 266, baseType: !59, size: 32, offset: 256)
!157 = !DIDerivedType(tag: DW_TAG_member, name: "nInternalPointer", scope: !131, file: !17, line: 267, baseType: !59, size: 32, offset: 288)
!158 = !DIDerivedType(tag: DW_TAG_member, name: "nNextFreeElement", scope: !131, file: !17, line: 268, baseType: !88, size: 64, offset: 320)
!159 = !DIDerivedType(tag: DW_TAG_member, name: "pDestructor", scope: !131, file: !17, line: 269, baseType: !160, size: 64, offset: 384)
!160 = !DIDerivedType(tag: DW_TAG_typedef, name: "dtor_func_t", file: !17, line: 101, baseType: !161)
!161 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !162, size: 64)
!162 = !DISubroutineType(types: !163)
!163 = !{null, !79}
!164 = !DIDerivedType(tag: DW_TAG_member, name: "obj", scope: !85, file: !17, line: 182, baseType: !165, size: 64)
!165 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !166, size: 64)
!166 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object", file: !17, line: 92, baseType: !167)
!167 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_object", file: !17, line: 369, size: 448, elements: !168)
!168 = !{!169, !170, !171, !554, !701, !702}
!169 = !DIDerivedType(tag: DW_TAG_member, name: "gc", scope: !167, file: !17, line: 370, baseType: !102, size: 64)
!170 = !DIDerivedType(tag: DW_TAG_member, name: "handle", scope: !167, file: !17, line: 371, baseType: !59, size: 32, offset: 64)
!171 = !DIDerivedType(tag: DW_TAG_member, name: "ce", scope: !167, file: !17, line: 372, baseType: !172, size: 64, offset: 128)
!172 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !173, size: 64)
!173 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_class_entry", file: !17, line: 83, baseType: !174)
!174 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_class_entry", file: !175, line: 110, size: 3648, elements: !176)
!175 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend.h", directory: "")
!176 = !{!177, !178, !179, !184, !185, !186, !187, !188, !189, !190, !192, !194, !195, !196, !210, !406, !407, !408, !409, !410, !411, !412, !413, !414, !415, !416, !417, !418, !430, !441, !477, !481, !491, !500, !501, !502, !514, !515, !529, !539}
!177 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !174, file: !175, line: 111, baseType: !34, size: 8)
!178 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !174, file: !175, line: 112, baseType: !111, size: 64, offset: 64)
!179 = !DIDerivedType(tag: DW_TAG_member, scope: !174, file: !175, line: 114, baseType: !180, size: 64, offset: 128)
!180 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !174, file: !175, line: 114, size: 64, elements: !181)
!181 = !{!182, !183}
!182 = !DIDerivedType(tag: DW_TAG_member, name: "parent", scope: !180, file: !175, line: 115, baseType: !172, size: 64)
!183 = !DIDerivedType(tag: DW_TAG_member, name: "parent_name", scope: !180, file: !175, line: 116, baseType: !111, size: 64)
!184 = !DIDerivedType(tag: DW_TAG_member, name: "refcount", scope: !174, file: !175, line: 118, baseType: !18, size: 32, offset: 192)
!185 = !DIDerivedType(tag: DW_TAG_member, name: "ce_flags", scope: !174, file: !175, line: 119, baseType: !59, size: 32, offset: 224)
!186 = !DIDerivedType(tag: DW_TAG_member, name: "default_properties_count", scope: !174, file: !175, line: 121, baseType: !18, size: 32, offset: 256)
!187 = !DIDerivedType(tag: DW_TAG_member, name: "default_static_members_count", scope: !174, file: !175, line: 122, baseType: !18, size: 32, offset: 288)
!188 = !DIDerivedType(tag: DW_TAG_member, name: "default_properties_table", scope: !174, file: !175, line: 123, baseType: !79, size: 64, offset: 320)
!189 = !DIDerivedType(tag: DW_TAG_member, name: "default_static_members_table", scope: !174, file: !175, line: 124, baseType: !79, size: 64, offset: 384)
!190 = !DIDerivedType(tag: DW_TAG_member, name: "static_members_table__ptr", scope: !174, file: !175, line: 125, baseType: !191, size: 64, offset: 448)
!191 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !79, size: 64)
!192 = !DIDerivedType(tag: DW_TAG_member, name: "function_table", scope: !174, file: !175, line: 126, baseType: !193, size: 448, offset: 512)
!193 = !DIDerivedType(tag: DW_TAG_typedef, name: "HashTable", file: !17, line: 248, baseType: !131)
!194 = !DIDerivedType(tag: DW_TAG_member, name: "properties_info", scope: !174, file: !175, line: 127, baseType: !193, size: 448, offset: 960)
!195 = !DIDerivedType(tag: DW_TAG_member, name: "constants_table", scope: !174, file: !175, line: 128, baseType: !193, size: 448, offset: 1408)
!196 = !DIDerivedType(tag: DW_TAG_member, name: "properties_info_table", scope: !174, file: !175, line: 130, baseType: !197, size: 64, offset: 1856)
!197 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !198, size: 64)
!198 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !199, size: 64)
!199 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_property_info", file: !37, line: 361, size: 320, elements: !200)
!200 = !{!201, !202, !203, !204, !205, !206}
!201 = !DIDerivedType(tag: DW_TAG_member, name: "offset", scope: !199, file: !37, line: 362, baseType: !59, size: 32)
!202 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !199, file: !37, line: 364, baseType: !59, size: 32, offset: 32)
!203 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !199, file: !37, line: 365, baseType: !111, size: 64, offset: 64)
!204 = !DIDerivedType(tag: DW_TAG_member, name: "doc_comment", scope: !199, file: !37, line: 366, baseType: !111, size: 64, offset: 128)
!205 = !DIDerivedType(tag: DW_TAG_member, name: "ce", scope: !199, file: !37, line: 367, baseType: !172, size: 64, offset: 192)
!206 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !199, file: !37, line: 368, baseType: !207, size: 64, offset: 256)
!207 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_type", file: !17, line: 124, baseType: !208)
!208 = !DIDerivedType(tag: DW_TAG_typedef, name: "uintptr_t", file: !209, line: 90, baseType: !120)
!209 = !DIFile(filename: "/usr/include/stdint.h", directory: "")
!210 = !DIDerivedType(tag: DW_TAG_member, name: "constructor", scope: !174, file: !175, line: 132, baseType: !211, size: 64, offset: 1920)
!211 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !212, size: 64)
!212 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_function", file: !17, line: 84, baseType: !213)
!213 = distinct !DICompositeType(tag: DW_TAG_union_type, name: "_zend_function", file: !37, line: 483, size: 1792, elements: !214)
!214 = !{!215, !216, !217, !241, !301}
!215 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !213, file: !37, line: 484, baseType: !72, size: 8)
!216 = !DIDerivedType(tag: DW_TAG_member, name: "quick_arg_flags", scope: !213, file: !37, line: 485, baseType: !59, size: 32)
!217 = !DIDerivedType(tag: DW_TAG_member, name: "common", scope: !213, file: !37, line: 497, baseType: !218, size: 384)
!218 = distinct !DICompositeType(tag: DW_TAG_structure_type, scope: !213, file: !37, line: 487, size: 384, elements: !219)
!219 = !{!220, !221, !225, !226, !227, !228, !229, !230, !231}
!220 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !218, file: !37, line: 488, baseType: !72, size: 8)
!221 = !DIDerivedType(tag: DW_TAG_member, name: "arg_flags", scope: !218, file: !37, line: 489, baseType: !222, size: 24, offset: 8)
!222 = !DICompositeType(tag: DW_TAG_array_type, baseType: !72, size: 24, elements: !223)
!223 = !{!224}
!224 = !DISubrange(count: 3)
!225 = !DIDerivedType(tag: DW_TAG_member, name: "fn_flags", scope: !218, file: !37, line: 490, baseType: !59, size: 32, offset: 32)
!226 = !DIDerivedType(tag: DW_TAG_member, name: "function_name", scope: !218, file: !37, line: 491, baseType: !111, size: 64, offset: 64)
!227 = !DIDerivedType(tag: DW_TAG_member, name: "scope", scope: !218, file: !37, line: 492, baseType: !172, size: 64, offset: 128)
!228 = !DIDerivedType(tag: DW_TAG_member, name: "prototype", scope: !218, file: !37, line: 493, baseType: !211, size: 64, offset: 192)
!229 = !DIDerivedType(tag: DW_TAG_member, name: "num_args", scope: !218, file: !37, line: 494, baseType: !59, size: 32, offset: 256)
!230 = !DIDerivedType(tag: DW_TAG_member, name: "required_num_args", scope: !218, file: !37, line: 495, baseType: !59, size: 32, offset: 288)
!231 = !DIDerivedType(tag: DW_TAG_member, name: "arg_info", scope: !218, file: !37, line: 496, baseType: !232, size: 64, offset: 320)
!232 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !233, size: 64)
!233 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_arg_info", file: !37, line: 400, baseType: !234)
!234 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_arg_info", file: !37, line: 395, size: 192, elements: !235)
!235 = !{!236, !237, !238, !239}
!236 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !234, file: !37, line: 396, baseType: !111, size: 64)
!237 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !234, file: !37, line: 397, baseType: !207, size: 64, offset: 64)
!238 = !DIDerivedType(tag: DW_TAG_member, name: "pass_by_reference", scope: !234, file: !37, line: 398, baseType: !72, size: 8, offset: 128)
!239 = !DIDerivedType(tag: DW_TAG_member, name: "is_variadic", scope: !234, file: !37, line: 399, baseType: !240, size: 8, offset: 136)
!240 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_bool", file: !17, line: 49, baseType: !73)
!241 = !DIDerivedType(tag: DW_TAG_member, name: "op_array", scope: !213, file: !37, line: 499, baseType: !242, size: 1792)
!242 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_op_array", file: !37, line: 49, baseType: !243)
!243 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_op_array", file: !37, line: 414, size: 1792, elements: !244)
!244 = !{!245, !246, !247, !248, !249, !250, !251, !252, !253, !254, !255, !256, !257, !258, !260, !264, !267, !268, !270, !272, !273, !274, !282, !291, !292, !293, !294, !295, !296, !297}
!245 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !243, file: !37, line: 416, baseType: !72, size: 8)
!246 = !DIDerivedType(tag: DW_TAG_member, name: "arg_flags", scope: !243, file: !37, line: 417, baseType: !222, size: 24, offset: 8)
!247 = !DIDerivedType(tag: DW_TAG_member, name: "fn_flags", scope: !243, file: !37, line: 418, baseType: !59, size: 32, offset: 32)
!248 = !DIDerivedType(tag: DW_TAG_member, name: "function_name", scope: !243, file: !37, line: 419, baseType: !111, size: 64, offset: 64)
!249 = !DIDerivedType(tag: DW_TAG_member, name: "scope", scope: !243, file: !37, line: 420, baseType: !172, size: 64, offset: 128)
!250 = !DIDerivedType(tag: DW_TAG_member, name: "prototype", scope: !243, file: !37, line: 421, baseType: !211, size: 64, offset: 192)
!251 = !DIDerivedType(tag: DW_TAG_member, name: "num_args", scope: !243, file: !37, line: 422, baseType: !59, size: 32, offset: 256)
!252 = !DIDerivedType(tag: DW_TAG_member, name: "required_num_args", scope: !243, file: !37, line: 423, baseType: !59, size: 32, offset: 288)
!253 = !DIDerivedType(tag: DW_TAG_member, name: "arg_info", scope: !243, file: !37, line: 424, baseType: !232, size: 64, offset: 320)
!254 = !DIDerivedType(tag: DW_TAG_member, name: "cache_size", scope: !243, file: !37, line: 427, baseType: !18, size: 32, offset: 384)
!255 = !DIDerivedType(tag: DW_TAG_member, name: "last_var", scope: !243, file: !37, line: 428, baseType: !18, size: 32, offset: 416)
!256 = !DIDerivedType(tag: DW_TAG_member, name: "T", scope: !243, file: !37, line: 429, baseType: !59, size: 32, offset: 448)
!257 = !DIDerivedType(tag: DW_TAG_member, name: "last", scope: !243, file: !37, line: 430, baseType: !59, size: 32, offset: 480)
!258 = !DIDerivedType(tag: DW_TAG_member, name: "opcodes", scope: !243, file: !37, line: 432, baseType: !259, size: 64, offset: 512)
!259 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !48, size: 64)
!260 = !DIDerivedType(tag: DW_TAG_member, name: "run_time_cache__ptr", scope: !243, file: !37, line: 433, baseType: !261, size: 64, offset: 576)
!261 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !262, size: 64)
!262 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !263, size: 64)
!263 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)
!264 = !DIDerivedType(tag: DW_TAG_member, name: "static_variables_ptr__ptr", scope: !243, file: !37, line: 434, baseType: !265, size: 64, offset: 640)
!265 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !266, size: 64)
!266 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !193, size: 64)
!267 = !DIDerivedType(tag: DW_TAG_member, name: "static_variables", scope: !243, file: !37, line: 435, baseType: !266, size: 64, offset: 704)
!268 = !DIDerivedType(tag: DW_TAG_member, name: "vars", scope: !243, file: !37, line: 436, baseType: !269, size: 64, offset: 768)
!269 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !111, size: 64)
!270 = !DIDerivedType(tag: DW_TAG_member, name: "refcount", scope: !243, file: !37, line: 438, baseType: !271, size: 64, offset: 832)
!271 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !59, size: 64)
!272 = !DIDerivedType(tag: DW_TAG_member, name: "last_live_range", scope: !243, file: !37, line: 440, baseType: !18, size: 32, offset: 896)
!273 = !DIDerivedType(tag: DW_TAG_member, name: "last_try_catch", scope: !243, file: !37, line: 441, baseType: !18, size: 32, offset: 928)
!274 = !DIDerivedType(tag: DW_TAG_member, name: "live_range", scope: !243, file: !37, line: 442, baseType: !275, size: 64, offset: 960)
!275 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !276, size: 64)
!276 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_live_range", file: !37, line: 181, baseType: !277)
!277 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_live_range", file: !37, line: 177, size: 96, elements: !278)
!278 = !{!279, !280, !281}
!279 = !DIDerivedType(tag: DW_TAG_member, name: "var", scope: !277, file: !37, line: 178, baseType: !59, size: 32)
!280 = !DIDerivedType(tag: DW_TAG_member, name: "start", scope: !277, file: !37, line: 179, baseType: !59, size: 32, offset: 32)
!281 = !DIDerivedType(tag: DW_TAG_member, name: "end", scope: !277, file: !37, line: 180, baseType: !59, size: 32, offset: 64)
!282 = !DIDerivedType(tag: DW_TAG_member, name: "try_catch_array", scope: !243, file: !37, line: 443, baseType: !283, size: 64, offset: 1024)
!283 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !284, size: 64)
!284 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_try_catch_element", file: !37, line: 168, baseType: !285)
!285 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_try_catch_element", file: !37, line: 163, size: 128, elements: !286)
!286 = !{!287, !288, !289, !290}
!287 = !DIDerivedType(tag: DW_TAG_member, name: "try_op", scope: !285, file: !37, line: 164, baseType: !59, size: 32)
!288 = !DIDerivedType(tag: DW_TAG_member, name: "catch_op", scope: !285, file: !37, line: 165, baseType: !59, size: 32, offset: 32)
!289 = !DIDerivedType(tag: DW_TAG_member, name: "finally_op", scope: !285, file: !37, line: 166, baseType: !59, size: 32, offset: 64)
!290 = !DIDerivedType(tag: DW_TAG_member, name: "finally_end", scope: !285, file: !37, line: 167, baseType: !59, size: 32, offset: 96)
!291 = !DIDerivedType(tag: DW_TAG_member, name: "filename", scope: !243, file: !37, line: 445, baseType: !111, size: 64, offset: 1088)
!292 = !DIDerivedType(tag: DW_TAG_member, name: "line_start", scope: !243, file: !37, line: 446, baseType: !59, size: 32, offset: 1152)
!293 = !DIDerivedType(tag: DW_TAG_member, name: "line_end", scope: !243, file: !37, line: 447, baseType: !59, size: 32, offset: 1184)
!294 = !DIDerivedType(tag: DW_TAG_member, name: "doc_comment", scope: !243, file: !37, line: 448, baseType: !111, size: 64, offset: 1216)
!295 = !DIDerivedType(tag: DW_TAG_member, name: "last_literal", scope: !243, file: !37, line: 450, baseType: !18, size: 32, offset: 1280)
!296 = !DIDerivedType(tag: DW_TAG_member, name: "literals", scope: !243, file: !37, line: 451, baseType: !79, size: 64, offset: 1344)
!297 = !DIDerivedType(tag: DW_TAG_member, name: "reserved", scope: !243, file: !37, line: 453, baseType: !298, size: 384, offset: 1408)
!298 = !DICompositeType(tag: DW_TAG_array_type, baseType: !263, size: 384, elements: !299)
!299 = !{!300}
!300 = !DISubrange(count: 6)
!301 = !DIDerivedType(tag: DW_TAG_member, name: "internal_function", scope: !213, file: !37, line: 500, baseType: !302, size: 896)
!302 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_internal_function", file: !37, line: 479, baseType: !303)
!303 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_internal_function", file: !37, line: 463, size: 896, elements: !304)
!304 = !{!305, !306, !307, !308, !309, !310, !311, !312, !313, !322, !323, !405}
!305 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !303, file: !37, line: 465, baseType: !72, size: 8)
!306 = !DIDerivedType(tag: DW_TAG_member, name: "arg_flags", scope: !303, file: !37, line: 466, baseType: !222, size: 24, offset: 8)
!307 = !DIDerivedType(tag: DW_TAG_member, name: "fn_flags", scope: !303, file: !37, line: 467, baseType: !59, size: 32, offset: 32)
!308 = !DIDerivedType(tag: DW_TAG_member, name: "function_name", scope: !303, file: !37, line: 468, baseType: !111, size: 64, offset: 64)
!309 = !DIDerivedType(tag: DW_TAG_member, name: "scope", scope: !303, file: !37, line: 469, baseType: !172, size: 64, offset: 128)
!310 = !DIDerivedType(tag: DW_TAG_member, name: "prototype", scope: !303, file: !37, line: 470, baseType: !211, size: 64, offset: 192)
!311 = !DIDerivedType(tag: DW_TAG_member, name: "num_args", scope: !303, file: !37, line: 471, baseType: !59, size: 32, offset: 256)
!312 = !DIDerivedType(tag: DW_TAG_member, name: "required_num_args", scope: !303, file: !37, line: 472, baseType: !59, size: 32, offset: 288)
!313 = !DIDerivedType(tag: DW_TAG_member, name: "arg_info", scope: !303, file: !37, line: 473, baseType: !314, size: 64, offset: 320)
!314 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !315, size: 64)
!315 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_internal_arg_info", file: !37, line: 392, baseType: !316)
!316 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_internal_arg_info", file: !37, line: 387, size: 192, elements: !317)
!317 = !{!318, !319, !320, !321}
!318 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !316, file: !37, line: 388, baseType: !32, size: 64)
!319 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !316, file: !37, line: 389, baseType: !207, size: 64, offset: 64)
!320 = !DIDerivedType(tag: DW_TAG_member, name: "pass_by_reference", scope: !316, file: !37, line: 390, baseType: !72, size: 8, offset: 128)
!321 = !DIDerivedType(tag: DW_TAG_member, name: "is_variadic", scope: !316, file: !37, line: 391, baseType: !240, size: 8, offset: 136)
!322 = !DIDerivedType(tag: DW_TAG_member, name: "handler", scope: !303, file: !37, line: 476, baseType: !36, size: 64, offset: 384)
!323 = !DIDerivedType(tag: DW_TAG_member, name: "module", scope: !303, file: !37, line: 477, baseType: !324, size: 64, offset: 448)
!324 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !325, size: 64)
!325 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_module_entry", file: !326, line: 71, size: 1344, elements: !327)
!326 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_modules.h", directory: "")
!327 = !{!328, !330, !331, !332, !333, !362, !371, !372, !375, !379, !380, !381, !382, !388, !389, !390, !391, !395, !396, !400, !401, !402, !403, !404}
!328 = !DIDerivedType(tag: DW_TAG_member, name: "size", scope: !325, file: !326, line: 72, baseType: !329, size: 16)
!329 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned)
!330 = !DIDerivedType(tag: DW_TAG_member, name: "zend_api", scope: !325, file: !326, line: 73, baseType: !7, size: 32, offset: 32)
!331 = !DIDerivedType(tag: DW_TAG_member, name: "zend_debug", scope: !325, file: !326, line: 74, baseType: !73, size: 8, offset: 64)
!332 = !DIDerivedType(tag: DW_TAG_member, name: "zts", scope: !325, file: !326, line: 75, baseType: !73, size: 8, offset: 72)
!333 = !DIDerivedType(tag: DW_TAG_member, name: "ini_entry", scope: !325, file: !326, line: 76, baseType: !334, size: 64, offset: 128)
!334 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !335, size: 64)
!335 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !336)
!336 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_ini_entry", file: !337, line: 45, size: 576, elements: !338)
!337 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_ini.h", directory: "")
!338 = !{!339, !340, !347, !348, !349, !350, !351, !352, !356, !357, !360, !361}
!339 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !336, file: !337, line: 46, baseType: !111, size: 64)
!340 = !DIDerivedType(tag: DW_TAG_member, name: "on_modify", scope: !336, file: !337, line: 47, baseType: !341, size: 64, offset: 64)
!341 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !342, size: 64)
!342 = !DISubroutineType(types: !343)
!343 = !{!18, !344, !111, !263, !263, !263, !18}
!344 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !345, size: 64)
!345 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_ini_entry", file: !346, line: 63, baseType: !336)
!346 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_globals.h", directory: "")
!347 = !DIDerivedType(tag: DW_TAG_member, name: "mh_arg1", scope: !336, file: !337, line: 48, baseType: !263, size: 64, offset: 128)
!348 = !DIDerivedType(tag: DW_TAG_member, name: "mh_arg2", scope: !336, file: !337, line: 49, baseType: !263, size: 64, offset: 192)
!349 = !DIDerivedType(tag: DW_TAG_member, name: "mh_arg3", scope: !336, file: !337, line: 50, baseType: !263, size: 64, offset: 256)
!350 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !336, file: !337, line: 51, baseType: !111, size: 64, offset: 320)
!351 = !DIDerivedType(tag: DW_TAG_member, name: "orig_value", scope: !336, file: !337, line: 52, baseType: !111, size: 64, offset: 384)
!352 = !DIDerivedType(tag: DW_TAG_member, name: "displayer", scope: !336, file: !337, line: 53, baseType: !353, size: 64, offset: 448)
!353 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !354, size: 64)
!354 = !DISubroutineType(types: !355)
!355 = !{null, !344, !18}
!356 = !DIDerivedType(tag: DW_TAG_member, name: "module_number", scope: !336, file: !337, line: 55, baseType: !18, size: 32, offset: 512)
!357 = !DIDerivedType(tag: DW_TAG_member, name: "modifiable", scope: !336, file: !337, line: 57, baseType: !358, size: 8, offset: 544)
!358 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !60, line: 24, baseType: !359)
!359 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint8_t", file: !62, line: 38, baseType: !73)
!360 = !DIDerivedType(tag: DW_TAG_member, name: "orig_modifiable", scope: !336, file: !337, line: 58, baseType: !358, size: 8, offset: 552)
!361 = !DIDerivedType(tag: DW_TAG_member, name: "modified", scope: !336, file: !337, line: 59, baseType: !358, size: 8, offset: 560)
!362 = !DIDerivedType(tag: DW_TAG_member, name: "deps", scope: !325, file: !326, line: 77, baseType: !363, size: 64, offset: 192)
!363 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !364, size: 64)
!364 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !365)
!365 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_module_dep", file: !326, line: 116, size: 256, elements: !366)
!366 = !{!367, !368, !369, !370}
!367 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !365, file: !326, line: 117, baseType: !32, size: 64)
!368 = !DIDerivedType(tag: DW_TAG_member, name: "rel", scope: !365, file: !326, line: 118, baseType: !32, size: 64, offset: 64)
!369 = !DIDerivedType(tag: DW_TAG_member, name: "version", scope: !365, file: !326, line: 119, baseType: !32, size: 64, offset: 128)
!370 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !365, file: !326, line: 120, baseType: !73, size: 8, offset: 192)
!371 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !325, file: !326, line: 78, baseType: !32, size: 64, offset: 256)
!372 = !DIDerivedType(tag: DW_TAG_member, name: "functions", scope: !325, file: !326, line: 79, baseType: !373, size: 64, offset: 320)
!373 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !374, size: 64)
!374 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !29)
!375 = !DIDerivedType(tag: DW_TAG_member, name: "module_startup_func", scope: !325, file: !326, line: 80, baseType: !376, size: 64, offset: 384)
!376 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !377, size: 64)
!377 = !DISubroutineType(types: !378)
!378 = !{!18, !18, !18}
!379 = !DIDerivedType(tag: DW_TAG_member, name: "module_shutdown_func", scope: !325, file: !326, line: 81, baseType: !376, size: 64, offset: 448)
!380 = !DIDerivedType(tag: DW_TAG_member, name: "request_startup_func", scope: !325, file: !326, line: 82, baseType: !376, size: 64, offset: 512)
!381 = !DIDerivedType(tag: DW_TAG_member, name: "request_shutdown_func", scope: !325, file: !326, line: 83, baseType: !376, size: 64, offset: 576)
!382 = !DIDerivedType(tag: DW_TAG_member, name: "info_func", scope: !325, file: !326, line: 84, baseType: !383, size: 64, offset: 640)
!383 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !384, size: 64)
!384 = !DISubroutineType(types: !385)
!385 = !{null, !386}
!386 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !387, size: 64)
!387 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_module_entry", file: !326, line: 68, baseType: !325)
!388 = !DIDerivedType(tag: DW_TAG_member, name: "version", scope: !325, file: !326, line: 85, baseType: !32, size: 64, offset: 704)
!389 = !DIDerivedType(tag: DW_TAG_member, name: "globals_size", scope: !325, file: !326, line: 86, baseType: !122, size: 64, offset: 768)
!390 = !DIDerivedType(tag: DW_TAG_member, name: "globals_ptr", scope: !325, file: !326, line: 90, baseType: !263, size: 64, offset: 832)
!391 = !DIDerivedType(tag: DW_TAG_member, name: "globals_ctor", scope: !325, file: !326, line: 92, baseType: !392, size: 64, offset: 896)
!392 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !393, size: 64)
!393 = !DISubroutineType(types: !394)
!394 = !{null, !263}
!395 = !DIDerivedType(tag: DW_TAG_member, name: "globals_dtor", scope: !325, file: !326, line: 93, baseType: !392, size: 64, offset: 960)
!396 = !DIDerivedType(tag: DW_TAG_member, name: "post_deactivate_func", scope: !325, file: !326, line: 94, baseType: !397, size: 64, offset: 1024)
!397 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !398, size: 64)
!398 = !DISubroutineType(types: !399)
!399 = !{!18}
!400 = !DIDerivedType(tag: DW_TAG_member, name: "module_started", scope: !325, file: !326, line: 95, baseType: !18, size: 32, offset: 1088)
!401 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !325, file: !326, line: 96, baseType: !73, size: 8, offset: 1120)
!402 = !DIDerivedType(tag: DW_TAG_member, name: "handle", scope: !325, file: !326, line: 97, baseType: !263, size: 64, offset: 1152)
!403 = !DIDerivedType(tag: DW_TAG_member, name: "module_number", scope: !325, file: !326, line: 98, baseType: !18, size: 32, offset: 1216)
!404 = !DIDerivedType(tag: DW_TAG_member, name: "build_id", scope: !325, file: !326, line: 99, baseType: !32, size: 64, offset: 1280)
!405 = !DIDerivedType(tag: DW_TAG_member, name: "reserved", scope: !303, file: !37, line: 478, baseType: !298, size: 384, offset: 512)
!406 = !DIDerivedType(tag: DW_TAG_member, name: "destructor", scope: !174, file: !175, line: 133, baseType: !211, size: 64, offset: 1984)
!407 = !DIDerivedType(tag: DW_TAG_member, name: "clone", scope: !174, file: !175, line: 134, baseType: !211, size: 64, offset: 2048)
!408 = !DIDerivedType(tag: DW_TAG_member, name: "__get", scope: !174, file: !175, line: 135, baseType: !211, size: 64, offset: 2112)
!409 = !DIDerivedType(tag: DW_TAG_member, name: "__set", scope: !174, file: !175, line: 136, baseType: !211, size: 64, offset: 2176)
!410 = !DIDerivedType(tag: DW_TAG_member, name: "__unset", scope: !174, file: !175, line: 137, baseType: !211, size: 64, offset: 2240)
!411 = !DIDerivedType(tag: DW_TAG_member, name: "__isset", scope: !174, file: !175, line: 138, baseType: !211, size: 64, offset: 2304)
!412 = !DIDerivedType(tag: DW_TAG_member, name: "__call", scope: !174, file: !175, line: 139, baseType: !211, size: 64, offset: 2368)
!413 = !DIDerivedType(tag: DW_TAG_member, name: "__callstatic", scope: !174, file: !175, line: 140, baseType: !211, size: 64, offset: 2432)
!414 = !DIDerivedType(tag: DW_TAG_member, name: "__tostring", scope: !174, file: !175, line: 141, baseType: !211, size: 64, offset: 2496)
!415 = !DIDerivedType(tag: DW_TAG_member, name: "__debugInfo", scope: !174, file: !175, line: 142, baseType: !211, size: 64, offset: 2560)
!416 = !DIDerivedType(tag: DW_TAG_member, name: "serialize_func", scope: !174, file: !175, line: 143, baseType: !211, size: 64, offset: 2624)
!417 = !DIDerivedType(tag: DW_TAG_member, name: "unserialize_func", scope: !174, file: !175, line: 144, baseType: !211, size: 64, offset: 2688)
!418 = !DIDerivedType(tag: DW_TAG_member, name: "iterator_funcs_ptr", scope: !174, file: !175, line: 147, baseType: !419, size: 64, offset: 2752)
!419 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !420, size: 64)
!420 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_class_iterator_funcs", file: !421, line: 69, baseType: !422)
!421 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_iterators.h", directory: "")
!422 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_class_iterator_funcs", file: !421, line: 62, size: 384, elements: !423)
!423 = !{!424, !425, !426, !427, !428, !429}
!424 = !DIDerivedType(tag: DW_TAG_member, name: "zf_new_iterator", scope: !422, file: !421, line: 63, baseType: !211, size: 64)
!425 = !DIDerivedType(tag: DW_TAG_member, name: "zf_valid", scope: !422, file: !421, line: 64, baseType: !211, size: 64, offset: 64)
!426 = !DIDerivedType(tag: DW_TAG_member, name: "zf_current", scope: !422, file: !421, line: 65, baseType: !211, size: 64, offset: 128)
!427 = !DIDerivedType(tag: DW_TAG_member, name: "zf_key", scope: !422, file: !421, line: 66, baseType: !211, size: 64, offset: 192)
!428 = !DIDerivedType(tag: DW_TAG_member, name: "zf_next", scope: !422, file: !421, line: 67, baseType: !211, size: 64, offset: 256)
!429 = !DIDerivedType(tag: DW_TAG_member, name: "zf_rewind", scope: !422, file: !421, line: 68, baseType: !211, size: 64, offset: 320)
!430 = !DIDerivedType(tag: DW_TAG_member, scope: !174, file: !175, line: 150, baseType: !431, size: 64, offset: 2816)
!431 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !174, file: !175, line: 150, size: 64, elements: !432)
!432 = !{!433, !437}
!433 = !DIDerivedType(tag: DW_TAG_member, name: "create_object", scope: !431, file: !175, line: 151, baseType: !434, size: 64)
!434 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !435, size: 64)
!435 = !DISubroutineType(types: !436)
!436 = !{!165, !172}
!437 = !DIDerivedType(tag: DW_TAG_member, name: "interface_gets_implemented", scope: !431, file: !175, line: 152, baseType: !438, size: 64)
!438 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !439, size: 64)
!439 = !DISubroutineType(types: !440)
!440 = !{!18, !172, !172}
!441 = !DIDerivedType(tag: DW_TAG_member, name: "get_iterator", scope: !174, file: !175, line: 154, baseType: !442, size: 64, offset: 2880)
!442 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !443, size: 64)
!443 = !DISubroutineType(types: !444)
!444 = !{!445, !172, !79, !18}
!445 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !446, size: 64)
!446 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_iterator", file: !421, line: 27, baseType: !447)
!447 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_object_iterator", file: !421, line: 55, size: 704, elements: !448)
!448 = !{!449, !450, !451, !476}
!449 = !DIDerivedType(tag: DW_TAG_member, name: "std", scope: !447, file: !421, line: 56, baseType: !166, size: 448)
!450 = !DIDerivedType(tag: DW_TAG_member, name: "data", scope: !447, file: !421, line: 57, baseType: !80, size: 128, offset: 448)
!451 = !DIDerivedType(tag: DW_TAG_member, name: "funcs", scope: !447, file: !421, line: 58, baseType: !452, size: 64, offset: 576)
!452 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !453, size: 64)
!453 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !454)
!454 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_iterator_funcs", file: !421, line: 53, baseType: !455)
!455 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_object_iterator_funcs", file: !421, line: 29, size: 448, elements: !456)
!456 = !{!457, !461, !465, !469, !473, !474, !475}
!457 = !DIDerivedType(tag: DW_TAG_member, name: "dtor", scope: !455, file: !421, line: 31, baseType: !458, size: 64)
!458 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !459, size: 64)
!459 = !DISubroutineType(types: !460)
!460 = !{null, !445}
!461 = !DIDerivedType(tag: DW_TAG_member, name: "valid", scope: !455, file: !421, line: 34, baseType: !462, size: 64, offset: 64)
!462 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !463, size: 64)
!463 = !DISubroutineType(types: !464)
!464 = !{!18, !445}
!465 = !DIDerivedType(tag: DW_TAG_member, name: "get_current_data", scope: !455, file: !421, line: 37, baseType: !466, size: 64, offset: 128)
!466 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !467, size: 64)
!467 = !DISubroutineType(types: !468)
!468 = !{!79, !445}
!469 = !DIDerivedType(tag: DW_TAG_member, name: "get_current_key", scope: !455, file: !421, line: 43, baseType: !470, size: 64, offset: 192)
!470 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !471, size: 64)
!471 = !DISubroutineType(types: !472)
!472 = !{null, !445, !79}
!473 = !DIDerivedType(tag: DW_TAG_member, name: "move_forward", scope: !455, file: !421, line: 46, baseType: !458, size: 64, offset: 256)
!474 = !DIDerivedType(tag: DW_TAG_member, name: "rewind", scope: !455, file: !421, line: 49, baseType: !458, size: 64, offset: 320)
!475 = !DIDerivedType(tag: DW_TAG_member, name: "invalidate_current", scope: !455, file: !421, line: 52, baseType: !458, size: 64, offset: 384)
!476 = !DIDerivedType(tag: DW_TAG_member, name: "index", scope: !447, file: !421, line: 59, baseType: !117, size: 64, offset: 640)
!477 = !DIDerivedType(tag: DW_TAG_member, name: "get_static_method", scope: !174, file: !175, line: 155, baseType: !478, size: 64, offset: 2944)
!478 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !479, size: 64)
!479 = !DISubroutineType(types: !480)
!480 = !{!211, !172, !111}
!481 = !DIDerivedType(tag: DW_TAG_member, name: "serialize", scope: !174, file: !175, line: 158, baseType: !482, size: 64, offset: 3008)
!482 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !483, size: 64)
!483 = !DISubroutineType(types: !484)
!484 = !{!18, !79, !485, !487, !488}
!485 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !486, size: 64)
!486 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !73, size: 64)
!487 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !122, size: 64)
!488 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !489, size: 64)
!489 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_serialize_data", file: !175, line: 77, baseType: !490)
!490 = !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_serialize_data", file: !175, line: 74, flags: DIFlagFwdDecl)
!491 = !DIDerivedType(tag: DW_TAG_member, name: "unserialize", scope: !174, file: !175, line: 159, baseType: !492, size: 64, offset: 3072)
!492 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !493, size: 64)
!493 = !DISubroutineType(types: !494)
!494 = !{!18, !79, !172, !495, !122, !497}
!495 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !496, size: 64)
!496 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !73)
!497 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !498, size: 64)
!498 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_unserialize_data", file: !175, line: 78, baseType: !499)
!499 = !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_unserialize_data", file: !175, line: 75, flags: DIFlagFwdDecl)
!500 = !DIDerivedType(tag: DW_TAG_member, name: "num_interfaces", scope: !174, file: !175, line: 161, baseType: !59, size: 32, offset: 3136)
!501 = !DIDerivedType(tag: DW_TAG_member, name: "num_traits", scope: !174, file: !175, line: 162, baseType: !59, size: 32, offset: 3168)
!502 = !DIDerivedType(tag: DW_TAG_member, scope: !174, file: !175, line: 165, baseType: !503, size: 64, offset: 3200)
!503 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !174, file: !175, line: 165, size: 64, elements: !504)
!504 = !{!505, !507}
!505 = !DIDerivedType(tag: DW_TAG_member, name: "interfaces", scope: !503, file: !175, line: 166, baseType: !506, size: 64)
!506 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !172, size: 64)
!507 = !DIDerivedType(tag: DW_TAG_member, name: "interface_names", scope: !503, file: !175, line: 167, baseType: !508, size: 64)
!508 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !509, size: 64)
!509 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_class_name", file: !175, line: 83, baseType: !510)
!510 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_class_name", file: !175, line: 80, size: 128, elements: !511)
!511 = !{!512, !513}
!512 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !510, file: !175, line: 81, baseType: !111, size: 64)
!513 = !DIDerivedType(tag: DW_TAG_member, name: "lc_name", scope: !510, file: !175, line: 82, baseType: !111, size: 64, offset: 64)
!514 = !DIDerivedType(tag: DW_TAG_member, name: "trait_names", scope: !174, file: !175, line: 170, baseType: !508, size: 64, offset: 3264)
!515 = !DIDerivedType(tag: DW_TAG_member, name: "trait_aliases", scope: !174, file: !175, line: 171, baseType: !516, size: 64, offset: 3328)
!516 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !517, size: 64)
!517 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !518, size: 64)
!518 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_trait_alias", file: !175, line: 108, baseType: !519)
!519 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_trait_alias", file: !175, line: 96, size: 256, elements: !520)
!520 = !{!521, !527, !528}
!521 = !DIDerivedType(tag: DW_TAG_member, name: "trait_method", scope: !519, file: !175, line: 97, baseType: !522, size: 128)
!522 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_trait_method_reference", file: !175, line: 88, baseType: !523)
!523 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_trait_method_reference", file: !175, line: 85, size: 128, elements: !524)
!524 = !{!525, !526}
!525 = !DIDerivedType(tag: DW_TAG_member, name: "method_name", scope: !523, file: !175, line: 86, baseType: !111, size: 64)
!526 = !DIDerivedType(tag: DW_TAG_member, name: "class_name", scope: !523, file: !175, line: 87, baseType: !111, size: 64, offset: 64)
!527 = !DIDerivedType(tag: DW_TAG_member, name: "alias", scope: !519, file: !175, line: 102, baseType: !111, size: 64, offset: 128)
!528 = !DIDerivedType(tag: DW_TAG_member, name: "modifiers", scope: !519, file: !175, line: 107, baseType: !59, size: 32, offset: 192)
!529 = !DIDerivedType(tag: DW_TAG_member, name: "trait_precedences", scope: !174, file: !175, line: 172, baseType: !530, size: 64, offset: 3392)
!530 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !531, size: 64)
!531 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !532, size: 64)
!532 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_trait_precedence", file: !175, line: 94, baseType: !533)
!533 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_trait_precedence", file: !175, line: 90, size: 256, elements: !534)
!534 = !{!535, !536, !537}
!535 = !DIDerivedType(tag: DW_TAG_member, name: "trait_method", scope: !533, file: !175, line: 91, baseType: !522, size: 128)
!536 = !DIDerivedType(tag: DW_TAG_member, name: "num_excludes", scope: !533, file: !175, line: 92, baseType: !59, size: 32, offset: 128)
!537 = !DIDerivedType(tag: DW_TAG_member, name: "exclude_class_names", scope: !533, file: !175, line: 93, baseType: !538, size: 64, offset: 192)
!538 = !DICompositeType(tag: DW_TAG_array_type, baseType: !111, size: 64, elements: !126)
!539 = !DIDerivedType(tag: DW_TAG_member, name: "info", scope: !174, file: !175, line: 185, baseType: !540, size: 192, offset: 3456)
!540 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !174, file: !175, line: 174, size: 192, elements: !541)
!541 = !{!542, !549}
!542 = !DIDerivedType(tag: DW_TAG_member, name: "user", scope: !540, file: !175, line: 180, baseType: !543, size: 192)
!543 = distinct !DICompositeType(tag: DW_TAG_structure_type, scope: !540, file: !175, line: 175, size: 192, elements: !544)
!544 = !{!545, !546, !547, !548}
!545 = !DIDerivedType(tag: DW_TAG_member, name: "filename", scope: !543, file: !175, line: 176, baseType: !111, size: 64)
!546 = !DIDerivedType(tag: DW_TAG_member, name: "line_start", scope: !543, file: !175, line: 177, baseType: !59, size: 32, offset: 64)
!547 = !DIDerivedType(tag: DW_TAG_member, name: "line_end", scope: !543, file: !175, line: 178, baseType: !59, size: 32, offset: 96)
!548 = !DIDerivedType(tag: DW_TAG_member, name: "doc_comment", scope: !543, file: !175, line: 179, baseType: !111, size: 64, offset: 128)
!549 = !DIDerivedType(tag: DW_TAG_member, name: "internal", scope: !540, file: !175, line: 184, baseType: !550, size: 128)
!550 = distinct !DICompositeType(tag: DW_TAG_structure_type, scope: !540, file: !175, line: 181, size: 128, elements: !551)
!551 = !{!552, !553}
!552 = !DIDerivedType(tag: DW_TAG_member, name: "builtin_functions", scope: !550, file: !175, line: 182, baseType: !373, size: 64)
!553 = !DIDerivedType(tag: DW_TAG_member, name: "module", scope: !550, file: !175, line: 183, baseType: !324, size: 64, offset: 64)
!554 = !DIDerivedType(tag: DW_TAG_member, name: "handlers", scope: !167, file: !17, line: 373, baseType: !555, size: 64, offset: 192)
!555 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !556, size: 64)
!556 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !557)
!557 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_handlers", file: !17, line: 82, baseType: !558)
!558 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_object_handlers", file: !6, line: 154, size: 1856, elements: !559)
!559 = !{!560, !561, !566, !568, !573, !578, !583, !588, !593, !598, !603, !608, !613, !618, !623, !625, !630, !638, !643, !648, !655, !660, !662, !668, !674, !680, !685, !690, !695}
!560 = !DIDerivedType(tag: DW_TAG_member, name: "offset", scope: !558, file: !6, line: 156, baseType: !18, size: 32)
!561 = !DIDerivedType(tag: DW_TAG_member, name: "free_obj", scope: !558, file: !6, line: 158, baseType: !562, size: 64, offset: 64)
!562 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_free_obj_t", file: !6, line: 129, baseType: !563)
!563 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !564, size: 64)
!564 = !DISubroutineType(types: !565)
!565 = !{null, !165}
!566 = !DIDerivedType(tag: DW_TAG_member, name: "dtor_obj", scope: !558, file: !6, line: 159, baseType: !567, size: 64, offset: 128)
!567 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_dtor_obj_t", file: !6, line: 128, baseType: !563)
!568 = !DIDerivedType(tag: DW_TAG_member, name: "clone_obj", scope: !558, file: !6, line: 160, baseType: !569, size: 64, offset: 192)
!569 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_clone_obj_t", file: !6, line: 130, baseType: !570)
!570 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !571, size: 64)
!571 = !DISubroutineType(types: !572)
!572 = !{!165, !79}
!573 = !DIDerivedType(tag: DW_TAG_member, name: "read_property", scope: !558, file: !6, line: 161, baseType: !574, size: 64, offset: 256)
!574 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_read_property_t", file: !6, line: 44, baseType: !575)
!575 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !576, size: 64)
!576 = !DISubroutineType(types: !577)
!577 = !{!79, !79, !79, !18, !262, !79}
!578 = !DIDerivedType(tag: DW_TAG_member, name: "write_property", scope: !558, file: !6, line: 162, baseType: !579, size: 64, offset: 320)
!579 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_write_property_t", file: !6, line: 57, baseType: !580)
!580 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !581, size: 64)
!581 = !DISubroutineType(types: !582)
!582 = !{!79, !79, !79, !79, !262}
!583 = !DIDerivedType(tag: DW_TAG_member, name: "read_dimension", scope: !558, file: !6, line: 163, baseType: !584, size: 64, offset: 384)
!584 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_read_dimension_t", file: !6, line: 47, baseType: !585)
!585 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !586, size: 64)
!586 = !DISubroutineType(types: !587)
!587 = !{!79, !79, !79, !18, !79}
!588 = !DIDerivedType(tag: DW_TAG_member, name: "write_dimension", scope: !558, file: !6, line: 164, baseType: !589, size: 64, offset: 448)
!589 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_write_dimension_t", file: !6, line: 60, baseType: !590)
!590 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !591, size: 64)
!591 = !DISubroutineType(types: !592)
!592 = !{null, !79, !79, !79}
!593 = !DIDerivedType(tag: DW_TAG_member, name: "get_property_ptr_ptr", scope: !558, file: !6, line: 165, baseType: !594, size: 64, offset: 512)
!594 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_property_ptr_ptr_t", file: !6, line: 64, baseType: !595)
!595 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !596, size: 64)
!596 = !DISubroutineType(types: !597)
!597 = !{!79, !79, !79, !18, !262}
!598 = !DIDerivedType(tag: DW_TAG_member, name: "get", scope: !558, file: !6, line: 166, baseType: !599, size: 64, offset: 576)
!599 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_t", file: !6, line: 73, baseType: !600)
!600 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !601, size: 64)
!601 = !DISubroutineType(types: !602)
!602 = !{!79, !79, !79}
!603 = !DIDerivedType(tag: DW_TAG_member, name: "set", scope: !558, file: !6, line: 167, baseType: !604, size: 64, offset: 640)
!604 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_set_t", file: !6, line: 68, baseType: !605)
!605 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !606, size: 64)
!606 = !DISubroutineType(types: !607)
!607 = !{null, !79, !79}
!608 = !DIDerivedType(tag: DW_TAG_member, name: "has_property", scope: !558, file: !6, line: 168, baseType: !609, size: 64, offset: 704)
!609 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_has_property_t", file: !6, line: 81, baseType: !610)
!610 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !611, size: 64)
!611 = !DISubroutineType(types: !612)
!612 = !{!18, !79, !79, !18, !262}
!613 = !DIDerivedType(tag: DW_TAG_member, name: "unset_property", scope: !558, file: !6, line: 169, baseType: !614, size: 64, offset: 768)
!614 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_unset_property_t", file: !6, line: 87, baseType: !615)
!615 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !616, size: 64)
!616 = !DISubroutineType(types: !617)
!617 = !{null, !79, !79, !262}
!618 = !DIDerivedType(tag: DW_TAG_member, name: "has_dimension", scope: !558, file: !6, line: 170, baseType: !619, size: 64, offset: 832)
!619 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_has_dimension_t", file: !6, line: 84, baseType: !620)
!620 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !621, size: 64)
!621 = !DISubroutineType(types: !622)
!622 = !{!18, !79, !79, !18}
!623 = !DIDerivedType(tag: DW_TAG_member, name: "unset_dimension", scope: !558, file: !6, line: 171, baseType: !624, size: 64, offset: 896)
!624 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_unset_dimension_t", file: !6, line: 90, baseType: !605)
!625 = !DIDerivedType(tag: DW_TAG_member, name: "get_properties", scope: !558, file: !6, line: 172, baseType: !626, size: 64, offset: 960)
!626 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_properties_t", file: !6, line: 93, baseType: !627)
!627 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !628, size: 64)
!628 = !DISubroutineType(types: !629)
!629 = !{!266, !79}
!630 = !DIDerivedType(tag: DW_TAG_member, name: "get_method", scope: !558, file: !6, line: 173, baseType: !631, size: 64, offset: 1024)
!631 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_method_t", file: !6, line: 124, baseType: !632)
!632 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !633, size: 64)
!633 = !DISubroutineType(types: !634)
!634 = !{!211, !635, !111, !636}
!635 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !165, size: 64)
!636 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !637, size: 64)
!637 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !80)
!638 = !DIDerivedType(tag: DW_TAG_member, name: "call_method", scope: !558, file: !6, line: 174, baseType: !639, size: 64, offset: 1088)
!639 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_call_method_t", file: !6, line: 123, baseType: !640)
!640 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !641, size: 64)
!641 = !DISubroutineType(types: !642)
!642 = !{!18, !111, !165, !41, !79}
!643 = !DIDerivedType(tag: DW_TAG_member, name: "get_constructor", scope: !558, file: !6, line: 175, baseType: !644, size: 64, offset: 1152)
!644 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_constructor_t", file: !6, line: 125, baseType: !645)
!645 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !646, size: 64)
!646 = !DISubroutineType(types: !647)
!647 = !{!211, !165}
!648 = !DIDerivedType(tag: DW_TAG_member, name: "get_class_name", scope: !558, file: !6, line: 176, baseType: !649, size: 64, offset: 1216)
!649 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_class_name_t", file: !6, line: 134, baseType: !650)
!650 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !651, size: 64)
!651 = !DISubroutineType(types: !652)
!652 = !{!111, !653}
!653 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !654, size: 64)
!654 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !166)
!655 = !DIDerivedType(tag: DW_TAG_member, name: "compare_objects", scope: !558, file: !6, line: 177, baseType: !656, size: 64, offset: 1280)
!656 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_compare_t", file: !6, line: 136, baseType: !657)
!657 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !658, size: 64)
!658 = !DISubroutineType(types: !659)
!659 = !{!18, !79, !79}
!660 = !DIDerivedType(tag: DW_TAG_member, name: "cast_object", scope: !558, file: !6, line: 178, baseType: !661, size: 64, offset: 1344)
!661 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_cast_t", file: !6, line: 142, baseType: !620)
!662 = !DIDerivedType(tag: DW_TAG_member, name: "count_elements", scope: !558, file: !6, line: 179, baseType: !663, size: 64, offset: 1408)
!663 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_count_elements_t", file: !6, line: 146, baseType: !664)
!664 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !665, size: 64)
!665 = !DISubroutineType(types: !666)
!666 = !{!18, !79, !667}
!667 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !88, size: 64)
!668 = !DIDerivedType(tag: DW_TAG_member, name: "get_debug_info", scope: !558, file: !6, line: 180, baseType: !669, size: 64, offset: 1472)
!669 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_debug_info_t", file: !6, line: 95, baseType: !670)
!670 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !671, size: 64)
!671 = !DISubroutineType(types: !672)
!672 = !{!266, !79, !673}
!673 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64)
!674 = !DIDerivedType(tag: DW_TAG_member, name: "get_closure", scope: !558, file: !6, line: 181, baseType: !675, size: 64, offset: 1536)
!675 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_closure_t", file: !6, line: 148, baseType: !676)
!676 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !677, size: 64)
!677 = !DISubroutineType(types: !678)
!678 = !{!18, !79, !506, !679, !635}
!679 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !211, size: 64)
!680 = !DIDerivedType(tag: DW_TAG_member, name: "get_gc", scope: !558, file: !6, line: 182, baseType: !681, size: 64, offset: 1600)
!681 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_gc_t", file: !6, line: 150, baseType: !682)
!682 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !683, size: 64)
!683 = !DISubroutineType(types: !684)
!684 = !{!266, !79, !191, !673}
!685 = !DIDerivedType(tag: DW_TAG_member, name: "do_operation", scope: !558, file: !6, line: 183, baseType: !686, size: 64, offset: 1664)
!686 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_do_operation_t", file: !6, line: 152, baseType: !687)
!687 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !688, size: 64)
!688 = !DISubroutineType(types: !689)
!689 = !{!18, !72, !79, !79, !79}
!690 = !DIDerivedType(tag: DW_TAG_member, name: "compare", scope: !558, file: !6, line: 184, baseType: !691, size: 64, offset: 1728)
!691 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_compare_zvals_t", file: !6, line: 137, baseType: !692)
!692 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !693, size: 64)
!693 = !DISubroutineType(types: !694)
!694 = !{!18, !79, !79, !79}
!695 = !DIDerivedType(tag: DW_TAG_member, name: "get_properties_for", scope: !558, file: !6, line: 185, baseType: !696, size: 64, offset: 1792)
!696 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_object_get_properties_for_t", file: !6, line: 117, baseType: !697)
!697 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !698, size: 64)
!698 = !DISubroutineType(types: !699)
!699 = !{!129, !79, !700}
!700 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_prop_purpose", file: !6, line: 114, baseType: !5)
!701 = !DIDerivedType(tag: DW_TAG_member, name: "properties", scope: !167, file: !17, line: 374, baseType: !266, size: 64, offset: 256)
!702 = !DIDerivedType(tag: DW_TAG_member, name: "properties_table", scope: !167, file: !17, line: 375, baseType: !703, size: 128, offset: 320)
!703 = !DICompositeType(tag: DW_TAG_array_type, baseType: !80, size: 128, elements: !126)
!704 = !DIDerivedType(tag: DW_TAG_member, name: "res", scope: !85, file: !17, line: 183, baseType: !705, size: 64)
!705 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !706, size: 64)
!706 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_resource", file: !17, line: 93, baseType: !707)
!707 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_resource", file: !17, line: 378, size: 192, elements: !708)
!708 = !{!709, !710, !711, !712}
!709 = !DIDerivedType(tag: DW_TAG_member, name: "gc", scope: !707, file: !17, line: 379, baseType: !102, size: 64)
!710 = !DIDerivedType(tag: DW_TAG_member, name: "handle", scope: !707, file: !17, line: 380, baseType: !18, size: 32, offset: 64)
!711 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !707, file: !17, line: 381, baseType: !18, size: 32, offset: 96)
!712 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !707, file: !17, line: 382, baseType: !263, size: 64, offset: 128)
!713 = !DIDerivedType(tag: DW_TAG_member, name: "ref", scope: !85, file: !17, line: 184, baseType: !714, size: 64)
!714 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !715, size: 64)
!715 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_reference", file: !17, line: 94, baseType: !716)
!716 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_reference", file: !17, line: 400, size: 256, elements: !717)
!717 = !{!718, !719, !720}
!718 = !DIDerivedType(tag: DW_TAG_member, name: "gc", scope: !716, file: !17, line: 401, baseType: !102, size: 64)
!719 = !DIDerivedType(tag: DW_TAG_member, name: "val", scope: !716, file: !17, line: 402, baseType: !80, size: 128, offset: 64)
!720 = !DIDerivedType(tag: DW_TAG_member, name: "sources", scope: !716, file: !17, line: 403, baseType: !721, size: 64, offset: 192)
!721 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_property_info_source_list", file: !17, line: 394, baseType: !722)
!722 = distinct !DICompositeType(tag: DW_TAG_union_type, file: !17, line: 391, size: 64, elements: !723)
!723 = !{!724, !725}
!724 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !722, file: !17, line: 392, baseType: !198, size: 64)
!725 = !DIDerivedType(tag: DW_TAG_member, name: "list", scope: !722, file: !17, line: 393, baseType: !208, size: 64)
!726 = !DIDerivedType(tag: DW_TAG_member, name: "ast", scope: !85, file: !17, line: 185, baseType: !727, size: 64)
!727 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !728, size: 64)
!728 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_ast_ref", file: !17, line: 95, baseType: !729)
!729 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_ast_ref", file: !17, line: 406, size: 64, elements: !730)
!730 = !{!731}
!731 = !DIDerivedType(tag: DW_TAG_member, name: "gc", scope: !729, file: !17, line: 407, baseType: !102, size: 64)
!732 = !DIDerivedType(tag: DW_TAG_member, name: "zv", scope: !85, file: !17, line: 186, baseType: !79, size: 64)
!733 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !85, file: !17, line: 187, baseType: !263, size: 64)
!734 = !DIDerivedType(tag: DW_TAG_member, name: "ce", scope: !85, file: !17, line: 188, baseType: !172, size: 64)
!735 = !DIDerivedType(tag: DW_TAG_member, name: "func", scope: !85, file: !17, line: 189, baseType: !211, size: 64)
!736 = !DIDerivedType(tag: DW_TAG_member, name: "ww", scope: !85, file: !17, line: 193, baseType: !737, size: 64)
!737 = distinct !DICompositeType(tag: DW_TAG_structure_type, scope: !85, file: !17, line: 190, size: 64, elements: !738)
!738 = !{!739, !740}
!739 = !DIDerivedType(tag: DW_TAG_member, name: "w1", scope: !737, file: !17, line: 191, baseType: !59, size: 32)
!740 = !DIDerivedType(tag: DW_TAG_member, name: "w2", scope: !737, file: !17, line: 192, baseType: !59, size: 32, offset: 32)
!741 = !DIDerivedType(tag: DW_TAG_member, name: "u1", scope: !81, file: !17, line: 208, baseType: !742, size: 32, offset: 64)
!742 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !81, file: !17, line: 198, size: 32, elements: !743)
!743 = !{!744, !755}
!744 = !DIDerivedType(tag: DW_TAG_member, name: "v", scope: !742, file: !17, line: 206, baseType: !745, size: 32)
!745 = distinct !DICompositeType(tag: DW_TAG_structure_type, scope: !742, file: !17, line: 199, size: 32, elements: !746)
!746 = !{!747, !748, !749}
!747 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !745, file: !17, line: 200, baseType: !72, size: 8)
!748 = !DIDerivedType(tag: DW_TAG_member, name: "type_flags", scope: !745, file: !17, line: 200, baseType: !72, size: 8, offset: 8)
!749 = !DIDerivedType(tag: DW_TAG_member, name: "u", scope: !745, file: !17, line: 200, baseType: !750, size: 16, offset: 16)
!750 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !745, file: !17, line: 200, size: 16, elements: !751)
!751 = !{!752}
!752 = !DIDerivedType(tag: DW_TAG_member, name: "extra", scope: !750, file: !17, line: 200, baseType: !753, size: 16)
!753 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint16_t", file: !60, line: 25, baseType: !754)
!754 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint16_t", file: !62, line: 40, baseType: !329)
!755 = !DIDerivedType(tag: DW_TAG_member, name: "type_info", scope: !742, file: !17, line: 207, baseType: !59, size: 32)
!756 = !DIDerivedType(tag: DW_TAG_member, name: "u2", scope: !81, file: !17, line: 221, baseType: !757, size: 32, offset: 96)
!757 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !81, file: !17, line: 209, size: 32, elements: !758)
!758 = !{!759, !760, !761, !762, !763, !764, !765, !766, !767, !768, !769}
!759 = !DIDerivedType(tag: DW_TAG_member, name: "next", scope: !757, file: !17, line: 210, baseType: !59, size: 32)
!760 = !DIDerivedType(tag: DW_TAG_member, name: "cache_slot", scope: !757, file: !17, line: 211, baseType: !59, size: 32)
!761 = !DIDerivedType(tag: DW_TAG_member, name: "opline_num", scope: !757, file: !17, line: 212, baseType: !59, size: 32)
!762 = !DIDerivedType(tag: DW_TAG_member, name: "lineno", scope: !757, file: !17, line: 213, baseType: !59, size: 32)
!763 = !DIDerivedType(tag: DW_TAG_member, name: "num_args", scope: !757, file: !17, line: 214, baseType: !59, size: 32)
!764 = !DIDerivedType(tag: DW_TAG_member, name: "fe_pos", scope: !757, file: !17, line: 215, baseType: !59, size: 32)
!765 = !DIDerivedType(tag: DW_TAG_member, name: "fe_iter_idx", scope: !757, file: !17, line: 216, baseType: !59, size: 32)
!766 = !DIDerivedType(tag: DW_TAG_member, name: "access_flags", scope: !757, file: !17, line: 217, baseType: !59, size: 32)
!767 = !DIDerivedType(tag: DW_TAG_member, name: "property_guard", scope: !757, file: !17, line: 218, baseType: !59, size: 32)
!768 = !DIDerivedType(tag: DW_TAG_member, name: "constant_flags", scope: !757, file: !17, line: 219, baseType: !59, size: 32)
!769 = !DIDerivedType(tag: DW_TAG_member, name: "extra", scope: !757, file: !17, line: 220, baseType: !59, size: 32)
!770 = !DIDerivedType(tag: DW_TAG_member, name: "func", scope: !43, file: !37, line: 507, baseType: !211, size: 64, offset: 192)
!771 = !DIDerivedType(tag: DW_TAG_member, name: "This", scope: !43, file: !37, line: 508, baseType: !80, size: 128, offset: 256)
!772 = !DIDerivedType(tag: DW_TAG_member, name: "prev_execute_data", scope: !43, file: !37, line: 509, baseType: !41, size: 64, offset: 384)
!773 = !DIDerivedType(tag: DW_TAG_member, name: "symbol_table", scope: !43, file: !37, line: 510, baseType: !129, size: 64, offset: 448)
!774 = !DIDerivedType(tag: DW_TAG_member, name: "run_time_cache", scope: !43, file: !37, line: 511, baseType: !262, size: 64, offset: 512)
!775 = !DIDerivedType(tag: DW_TAG_member, name: "arg_info", scope: !29, file: !28, line: 37, baseType: !776, size: 64, offset: 128)
!776 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !777, size: 64)
!777 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !316)
!778 = !DIDerivedType(tag: DW_TAG_member, name: "num_args", scope: !29, file: !28, line: 38, baseType: !59, size: 32, offset: 192)
!779 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !29, file: !28, line: 39, baseType: !59, size: 32, offset: 224)
!780 = !{!781}
!781 = !DISubrange(count: 2)
!782 = !DIGlobalVariableExpression(var: !783, expr: !DIExpression())
!783 = distinct !DIGlobalVariable(name: "ulopcodes_module_entry", scope: !2, file: !3, line: 119, type: !387, isLocal: false, isDefinition: true)
!784 = !DIGlobalVariableExpression(var: !785, expr: !DIExpression())
!785 = distinct !DIGlobalVariable(name: "extension_version_info", scope: !2, file: !3, line: 388, type: !786, isLocal: false, isDefinition: true)
!786 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_extension_version_info", file: !787, line: 52, baseType: !788)
!787 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_extensions.h", directory: "")
!788 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_extension_version_info", file: !787, line: 49, size: 128, elements: !789)
!789 = !{!790, !791}
!790 = !DIDerivedType(tag: DW_TAG_member, name: "zend_extension_api_no", scope: !788, file: !787, line: 50, baseType: !18, size: 32)
!791 = !DIDerivedType(tag: DW_TAG_member, name: "build_id", scope: !788, file: !787, line: 51, baseType: !792, size: 64, offset: 64)
!792 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !34, size: 64)
!793 = !DIGlobalVariableExpression(var: !794, expr: !DIExpression())
!794 = distinct !DIGlobalVariable(name: "zend_extension_entry", scope: !2, file: !3, line: 390, type: !795, isLocal: false, isDefinition: true)
!795 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_extension", file: !787, line: 56, baseType: !796)
!796 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_extension", file: !787, line: 77, size: 1664, elements: !797)
!797 = !{!798, !799, !800, !801, !802, !803, !809, !814, !819, !821, !826, !832, !837, !839, !841, !843, !845, !849, !853, !858, !863, !864, !865, !866, !867, !868}
!798 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !796, file: !787, line: 78, baseType: !792, size: 64)
!799 = !DIDerivedType(tag: DW_TAG_member, name: "version", scope: !796, file: !787, line: 79, baseType: !792, size: 64, offset: 64)
!800 = !DIDerivedType(tag: DW_TAG_member, name: "author", scope: !796, file: !787, line: 80, baseType: !792, size: 64, offset: 128)
!801 = !DIDerivedType(tag: DW_TAG_member, name: "URL", scope: !796, file: !787, line: 81, baseType: !792, size: 64, offset: 192)
!802 = !DIDerivedType(tag: DW_TAG_member, name: "copyright", scope: !796, file: !787, line: 82, baseType: !792, size: 64, offset: 256)
!803 = !DIDerivedType(tag: DW_TAG_member, name: "startup", scope: !796, file: !787, line: 84, baseType: !804, size: 64, offset: 320)
!804 = !DIDerivedType(tag: DW_TAG_typedef, name: "startup_func_t", file: !787, line: 59, baseType: !805)
!805 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !806, size: 64)
!806 = !DISubroutineType(types: !807)
!807 = !{!18, !808}
!808 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !795, size: 64)
!809 = !DIDerivedType(tag: DW_TAG_member, name: "shutdown", scope: !796, file: !787, line: 85, baseType: !810, size: 64, offset: 384)
!810 = !DIDerivedType(tag: DW_TAG_typedef, name: "shutdown_func_t", file: !787, line: 60, baseType: !811)
!811 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !812, size: 64)
!812 = !DISubroutineType(types: !813)
!813 = !{null, !808}
!814 = !DIDerivedType(tag: DW_TAG_member, name: "activate", scope: !796, file: !787, line: 86, baseType: !815, size: 64, offset: 448)
!815 = !DIDerivedType(tag: DW_TAG_typedef, name: "activate_func_t", file: !787, line: 61, baseType: !816)
!816 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !817, size: 64)
!817 = !DISubroutineType(types: !818)
!818 = !{null}
!819 = !DIDerivedType(tag: DW_TAG_member, name: "deactivate", scope: !796, file: !787, line: 87, baseType: !820, size: 64, offset: 512)
!820 = !DIDerivedType(tag: DW_TAG_typedef, name: "deactivate_func_t", file: !787, line: 62, baseType: !816)
!821 = !DIDerivedType(tag: DW_TAG_member, name: "message_handler", scope: !796, file: !787, line: 89, baseType: !822, size: 64, offset: 576)
!822 = !DIDerivedType(tag: DW_TAG_typedef, name: "message_handler_func_t", file: !787, line: 64, baseType: !823)
!823 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !824, size: 64)
!824 = !DISubroutineType(types: !825)
!825 = !{null, !18, !263}
!826 = !DIDerivedType(tag: DW_TAG_member, name: "op_array_handler", scope: !796, file: !787, line: 91, baseType: !827, size: 64, offset: 640)
!827 = !DIDerivedType(tag: DW_TAG_typedef, name: "op_array_handler_func_t", file: !787, line: 66, baseType: !828)
!828 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !829, size: 64)
!829 = !DISubroutineType(types: !830)
!830 = !{null, !831}
!831 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !242, size: 64)
!832 = !DIDerivedType(tag: DW_TAG_member, name: "statement_handler", scope: !796, file: !787, line: 93, baseType: !833, size: 64, offset: 704)
!833 = !DIDerivedType(tag: DW_TAG_typedef, name: "statement_handler_func_t", file: !787, line: 68, baseType: !834)
!834 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !835, size: 64)
!835 = !DISubroutineType(types: !836)
!836 = !{null, !41}
!837 = !DIDerivedType(tag: DW_TAG_member, name: "fcall_begin_handler", scope: !796, file: !787, line: 94, baseType: !838, size: 64, offset: 768)
!838 = !DIDerivedType(tag: DW_TAG_typedef, name: "fcall_begin_handler_func_t", file: !787, line: 69, baseType: !834)
!839 = !DIDerivedType(tag: DW_TAG_member, name: "fcall_end_handler", scope: !796, file: !787, line: 95, baseType: !840, size: 64, offset: 832)
!840 = !DIDerivedType(tag: DW_TAG_typedef, name: "fcall_end_handler_func_t", file: !787, line: 70, baseType: !834)
!841 = !DIDerivedType(tag: DW_TAG_member, name: "op_array_ctor", scope: !796, file: !787, line: 97, baseType: !842, size: 64, offset: 896)
!842 = !DIDerivedType(tag: DW_TAG_typedef, name: "op_array_ctor_func_t", file: !787, line: 72, baseType: !828)
!843 = !DIDerivedType(tag: DW_TAG_member, name: "op_array_dtor", scope: !796, file: !787, line: 98, baseType: !844, size: 64, offset: 960)
!844 = !DIDerivedType(tag: DW_TAG_typedef, name: "op_array_dtor_func_t", file: !787, line: 73, baseType: !828)
!845 = !DIDerivedType(tag: DW_TAG_member, name: "api_no_check", scope: !796, file: !787, line: 100, baseType: !846, size: 64, offset: 1024)
!846 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !847, size: 64)
!847 = !DISubroutineType(types: !848)
!848 = !{!18, !18}
!849 = !DIDerivedType(tag: DW_TAG_member, name: "build_id_check", scope: !796, file: !787, line: 101, baseType: !850, size: 64, offset: 1088)
!850 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !851, size: 64)
!851 = !DISubroutineType(types: !852)
!852 = !{!18, !32}
!853 = !DIDerivedType(tag: DW_TAG_member, name: "op_array_persist_calc", scope: !796, file: !787, line: 102, baseType: !854, size: 64, offset: 1152)
!854 = !DIDerivedType(tag: DW_TAG_typedef, name: "op_array_persist_calc_func_t", file: !787, line: 74, baseType: !855)
!855 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !856, size: 64)
!856 = !DISubroutineType(types: !857)
!857 = !{!122, !831}
!858 = !DIDerivedType(tag: DW_TAG_member, name: "op_array_persist", scope: !796, file: !787, line: 103, baseType: !859, size: 64, offset: 1216)
!859 = !DIDerivedType(tag: DW_TAG_typedef, name: "op_array_persist_func_t", file: !787, line: 75, baseType: !860)
!860 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !861, size: 64)
!861 = !DISubroutineType(types: !862)
!862 = !{!122, !831, !263}
!863 = !DIDerivedType(tag: DW_TAG_member, name: "reserved5", scope: !796, file: !787, line: 104, baseType: !263, size: 64, offset: 1280)
!864 = !DIDerivedType(tag: DW_TAG_member, name: "reserved6", scope: !796, file: !787, line: 105, baseType: !263, size: 64, offset: 1344)
!865 = !DIDerivedType(tag: DW_TAG_member, name: "reserved7", scope: !796, file: !787, line: 106, baseType: !263, size: 64, offset: 1408)
!866 = !DIDerivedType(tag: DW_TAG_member, name: "reserved8", scope: !796, file: !787, line: 107, baseType: !263, size: 64, offset: 1472)
!867 = !DIDerivedType(tag: DW_TAG_member, name: "handle", scope: !796, file: !787, line: 109, baseType: !263, size: 64, offset: 1536)
!868 = !DIDerivedType(tag: DW_TAG_member, name: "resource_number", scope: !796, file: !787, line: 110, baseType: !18, size: 32, offset: 1600)
!869 = !DIGlobalVariableExpression(var: !870, expr: !DIExpression())
!870 = distinct !DIGlobalVariable(name: "ini_entries", scope: !2, file: !3, line: 40, type: !871, isLocal: true, isDefinition: true)
!871 = !DICompositeType(tag: DW_TAG_array_type, baseType: !872, size: 1536, elements: !223)
!872 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !873)
!873 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_ini_entry_def", file: !337, line: 43, baseType: !874)
!874 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_ini_entry_def", file: !337, line: 31, size: 512, elements: !875)
!875 = !{!876, !877, !878, !879, !880, !881, !882, !883, !884, !885}
!876 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !874, file: !337, line: 32, baseType: !32, size: 64)
!877 = !DIDerivedType(tag: DW_TAG_member, name: "on_modify", scope: !874, file: !337, line: 33, baseType: !341, size: 64, offset: 64)
!878 = !DIDerivedType(tag: DW_TAG_member, name: "mh_arg1", scope: !874, file: !337, line: 34, baseType: !263, size: 64, offset: 128)
!879 = !DIDerivedType(tag: DW_TAG_member, name: "mh_arg2", scope: !874, file: !337, line: 35, baseType: !263, size: 64, offset: 192)
!880 = !DIDerivedType(tag: DW_TAG_member, name: "mh_arg3", scope: !874, file: !337, line: 36, baseType: !263, size: 64, offset: 256)
!881 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !874, file: !337, line: 37, baseType: !32, size: 64, offset: 320)
!882 = !DIDerivedType(tag: DW_TAG_member, name: "displayer", scope: !874, file: !337, line: 38, baseType: !353, size: 64, offset: 384)
!883 = !DIDerivedType(tag: DW_TAG_member, name: "value_length", scope: !874, file: !337, line: 40, baseType: !59, size: 32, offset: 448)
!884 = !DIDerivedType(tag: DW_TAG_member, name: "name_length", scope: !874, file: !337, line: 41, baseType: !753, size: 16, offset: 480)
!885 = !DIDerivedType(tag: DW_TAG_member, name: "modifiable", scope: !874, file: !337, line: 42, baseType: !358, size: 8, offset: 496)
!886 = !DIDerivedType(tag: DW_TAG_typedef, name: "zend_ulopcodes_globals", file: !887, line: 50, baseType: !888)
!887 = !DIFile(filename: "./php_ulopcodes.h", directory: "/home/ab/sail/project/sail-php-driver")
!888 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_zend_ulopcodes_globals", file: !887, line: 47, size: 16, elements: !889)
!889 = !{!890, !891}
!890 = !DIDerivedType(tag: DW_TAG_member, name: "enabled", scope: !888, file: !887, line: 48, baseType: !240, size: 8)
!891 = !DIDerivedType(tag: DW_TAG_member, name: "dump_oparray", scope: !888, file: !887, line: 49, baseType: !240, size: 8, offset: 8)
!892 = !{i32 7, !"Dwarf Version", i32 4}
!893 = !{i32 2, !"Debug Info Version", i32 3}
!894 = !{i32 1, !"wchar_size", i32 4}
!895 = !{!"Debian clang version 12.0.0-++20201103084905+7f34aca083b-1~exp1~20201103195548.3577"}
!896 = distinct !DISubprogram(name: "zif_ulopcodes_emit", scope: !3, file: !3, line: 57, type: !39, scopeLine: 58, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !897)
!897 = !{!898, !899}
!898 = !DILocalVariable(name: "execute_data", arg: 1, scope: !896, file: !3, line: 57, type: !41)
!899 = !DILocalVariable(name: "return_value", arg: 2, scope: !896, file: !3, line: 57, type: !79)
!900 = !DILocation(line: 0, scope: !896)
!901 = !DILocation(line: 60, column: 1, scope: !896)
!902 = distinct !DISubprogram(name: "zm_startup_ulopcodes", scope: !3, file: !3, line: 65, type: !377, scopeLine: 66, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !903)
!903 = !{!904, !905, !906, !907}
!904 = !DILocalVariable(name: "type", arg: 1, scope: !902, file: !3, line: 65, type: !18)
!905 = !DILocalVariable(name: "module_number", arg: 2, scope: !902, file: !3, line: 65, type: !18)
!906 = !DILocalVariable(name: "i", scope: !902, file: !3, line: 67, type: !7)
!907 = !DILocalVariable(name: "name", scope: !908, file: !3, line: 72, type: !32)
!908 = distinct !DILexicalBlock(scope: !909, file: !3, line: 71, column: 45)
!909 = distinct !DILexicalBlock(scope: !910, file: !3, line: 71, column: 2)
!910 = distinct !DILexicalBlock(scope: !902, file: !3, line: 71, column: 2)
!911 = !DILocation(line: 0, scope: !902)
!912 = !DILocation(line: 71, column: 2, scope: !910)
!913 = !DILocation(line: 72, column: 43, scope: !908)
!914 = !DILocation(line: 72, column: 22, scope: !908)
!915 = !DILocation(line: 0, scope: !908)
!916 = !DILocation(line: 73, column: 7, scope: !917)
!917 = distinct !DILexicalBlock(scope: !908, file: !3, line: 73, column: 7)
!918 = !DILocation(line: 73, column: 7, scope: !908)
!919 = !DILocation(line: 74, column: 38, scope: !920)
!920 = distinct !DILexicalBlock(scope: !917, file: !3, line: 73, column: 13)
!921 = !DILocation(line: 74, column: 4, scope: !920)
!922 = !DILocation(line: 75, column: 3, scope: !920)
!923 = !DILocation(line: 71, column: 41, scope: !909)
!924 = !DILocation(line: 71, column: 16, scope: !909)
!925 = distinct !{!925, !912, !926}
!926 = !DILocation(line: 76, column: 2, scope: !910)
!927 = !DILocalVariable(name: "ulopcodes_globals", arg: 1, scope: !928, file: !3, line: 48, type: !931)
!928 = distinct !DISubprogram(name: "ulopcodes_init_globals", scope: !3, file: !3, line: 48, type: !929, scopeLine: 49, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !932)
!929 = !DISubroutineType(types: !930)
!930 = !{null, !931}
!931 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !886, size: 64)
!932 = !{!927}
!933 = !DILocation(line: 0, scope: !928, inlinedAt: !934)
!934 = distinct !DILocation(line: 78, column: 2, scope: !902)
!935 = !DILocation(line: 50, column: 29, scope: !928, inlinedAt: !934)
!936 = !{!937, !938, i64 0}
!937 = !{!"_zend_ulopcodes_globals", !938, i64 0, !938, i64 1}
!938 = !{!"omnipotent char", !939, i64 0}
!939 = !{!"Simple C/C++ TBAA"}
!940 = !DILocation(line: 51, column: 34, scope: !928, inlinedAt: !934)
!941 = !{!937, !938, i64 1}
!942 = !DILocation(line: 79, column: 2, scope: !902)
!943 = !DILocation(line: 81, column: 2, scope: !902)
!944 = !DISubprogram(name: "zend_get_opcode_name", scope: !945, file: !945, line: 74, type: !946, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!945 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_vm_opcodes.h", directory: "")
!946 = !DISubroutineType(types: !947)
!947 = !{!32, !73}
!948 = !{}
!949 = !DISubprogram(name: "zend_register_long_constant", scope: !950, file: !950, line: 84, type: !951, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!950 = !DIFile(filename: "/usr/include/php/20190902/Zend/zend_constants.h", directory: "")
!951 = !DISubroutineType(types: !952)
!952 = !{null, !32, !120, !93, !18, !18}
!953 = !DISubprogram(name: "zend_register_ini_entries", scope: !337, file: !337, line: 74, type: !954, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!954 = !DISubroutineType(types: !955)
!955 = !{!18, !956, !18}
!956 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !957, size: 64)
!957 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !874)
!958 = distinct !DISubprogram(name: "zm_shutdown_ulopcodes", scope: !3, file: !3, line: 87, type: !377, scopeLine: 88, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !959)
!959 = !{!960, !961}
!960 = !DILocalVariable(name: "type", arg: 1, scope: !958, file: !3, line: 87, type: !18)
!961 = !DILocalVariable(name: "module_number", arg: 2, scope: !958, file: !3, line: 87, type: !18)
!962 = !DILocation(line: 0, scope: !958)
!963 = !DILocation(line: 89, column: 2, scope: !958)
!964 = !DILocation(line: 91, column: 2, scope: !958)
!965 = !DISubprogram(name: "zend_unregister_ini_entries", scope: !337, file: !337, line: 75, type: !966, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!966 = !DISubroutineType(types: !967)
!967 = !{null, !18}
!968 = distinct !DISubprogram(name: "zm_info_ulopcodes", scope: !3, file: !3, line: 97, type: !384, scopeLine: 98, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !969)
!969 = !{!970}
!970 = !DILocalVariable(name: "zend_module", arg: 1, scope: !968, file: !3, line: 97, type: !386)
!971 = !DILocation(line: 0, scope: !968)
!972 = !DILocation(line: 99, column: 2, scope: !968)
!973 = !DILocation(line: 100, column: 2, scope: !968)
!974 = !DILocation(line: 101, column: 2, scope: !968)
!975 = !DILocation(line: 103, column: 2, scope: !968)
!976 = !DILocation(line: 104, column: 1, scope: !968)
!977 = !DISubprogram(name: "php_info_print_table_start", scope: !978, file: !978, line: 74, type: !817, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!978 = !DIFile(filename: "/usr/include/php/20190902/ext/standard/info.h", directory: "")
!979 = !DISubprogram(name: "php_info_print_table_header", scope: !978, file: !978, line: 71, type: !980, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!980 = !DISubroutineType(types: !981)
!981 = !{null, !18, null}
!982 = !DISubprogram(name: "php_info_print_table_end", scope: !978, file: !978, line: 75, type: !817, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!983 = !DISubprogram(name: "display_ini_entries", scope: !337, file: !337, line: 82, type: !984, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!984 = !DISubroutineType(types: !985)
!985 = !{null, !324}
!986 = distinct !DISubprogram(name: "ulop_startup", scope: !3, file: !3, line: 258, type: !806, scopeLine: 259, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !987)
!987 = !{!988}
!988 = !DILocalVariable(name: "extension", arg: 1, scope: !986, file: !3, line: 258, type: !808)
!989 = !DILocation(line: 0, scope: !986)
!990 = !DILocation(line: 260, column: 9, scope: !986)
!991 = !DILocation(line: 260, column: 2, scope: !986)
!992 = !DISubprogram(name: "zend_startup_module", scope: !28, file: !28, line: 273, type: !993, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!993 = !DISubroutineType(types: !994)
!994 = !{!18, !324}
!995 = distinct !DISubprogram(name: "ulop_oparray_h", scope: !3, file: !3, line: 263, type: !829, scopeLine: 264, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !996)
!996 = !{!997, !998, !1001, !1007, !1008, !1009, !1010}
!997 = !DILocalVariable(name: "op_array", arg: 1, scope: !995, file: !3, line: 263, type: !831)
!998 = !DILocalVariable(name: "i", scope: !999, file: !3, line: 268, type: !7)
!999 = distinct !DILexicalBlock(scope: !1000, file: !3, line: 267, column: 23)
!1000 = distinct !DILexicalBlock(scope: !995, file: !3, line: 267, column: 6)
!1001 = !DILocalVariable(name: "new_op", scope: !1002, file: !3, line: 284, type: !48)
!1002 = distinct !DILexicalBlock(scope: !1003, file: !3, line: 283, column: 6)
!1003 = distinct !DILexicalBlock(scope: !1004, file: !3, line: 278, column: 8)
!1004 = distinct !DILexicalBlock(scope: !1005, file: !3, line: 274, column: 40)
!1005 = distinct !DILexicalBlock(scope: !1006, file: !3, line: 274, column: 3)
!1006 = distinct !DILexicalBlock(scope: !999, file: !3, line: 274, column: 3)
!1007 = !DILocalVariable(name: "j", scope: !1002, file: !3, line: 288, type: !7)
!1008 = !DILocalVariable(name: "found", scope: !1002, file: !3, line: 289, type: !7)
!1009 = !DILocalVariable(name: "level", scope: !1002, file: !3, line: 290, type: !7)
!1010 = !DILocalVariable(name: "op_flags", scope: !1002, file: !3, line: 292, type: !7)
!1011 = !DILocation(line: 284, column: 13, scope: !1002)
!1012 = !DILocation(line: 0, scope: !995)
!1013 = !DILocation(line: 267, column: 6, scope: !1000)
!1014 = !DILocation(line: 267, column: 6, scope: !995)
!1015 = !DILocation(line: 270, column: 7, scope: !1016)
!1016 = distinct !DILexicalBlock(scope: !999, file: !3, line: 270, column: 7)
!1017 = !DILocation(line: 270, column: 7, scope: !999)
!1018 = !DILocalVariable(name: "op_array", arg: 1, scope: !1019, file: !3, line: 137, type: !831)
!1019 = distinct !DISubprogram(name: "ulop_dump_oparray_header", scope: !3, file: !3, line: 137, type: !829, scopeLine: 137, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !1020)
!1020 = !{!1018, !1021}
!1021 = !DILocalVariable(name: "k", scope: !1019, file: !3, line: 138, type: !18)
!1022 = !DILocation(line: 0, scope: !1019, inlinedAt: !1023)
!1023 = distinct !DILocation(line: 271, column: 4, scope: !1024)
!1024 = distinct !DILexicalBlock(scope: !1016, file: !3, line: 270, column: 29)
!1025 = !DILocation(line: 140, column: 15, scope: !1026, inlinedAt: !1023)
!1026 = distinct !DILexicalBlock(scope: !1019, file: !3, line: 140, column: 5)
!1027 = !{!1028, !1030, i64 8}
!1028 = !{!"_zend_op_array", !938, i64 0, !938, i64 1, !1029, i64 4, !1030, i64 8, !1030, i64 16, !1030, i64 24, !1029, i64 32, !1029, i64 36, !1030, i64 40, !1029, i64 48, !1029, i64 52, !1029, i64 56, !1029, i64 60, !1030, i64 64, !1030, i64 72, !1030, i64 80, !1030, i64 88, !1030, i64 96, !1030, i64 104, !1029, i64 112, !1029, i64 116, !1030, i64 120, !1030, i64 128, !1030, i64 136, !1029, i64 144, !1029, i64 148, !1030, i64 152, !1029, i64 160, !1030, i64 168, !938, i64 176}
!1029 = !{!"int", !938, i64 0}
!1030 = !{!"any pointer", !938, i64 0}
!1031 = !DILocation(line: 140, column: 5, scope: !1026, inlinedAt: !1023)
!1032 = !DILocation(line: 140, column: 5, scope: !1019, inlinedAt: !1023)
!1033 = !DILocation(line: 141, column: 40, scope: !1034, inlinedAt: !1023)
!1034 = distinct !DILexicalBlock(scope: !1026, file: !3, line: 140, column: 30)
!1035 = !DILocation(line: 141, column: 3, scope: !1034, inlinedAt: !1023)
!1036 = !DILocation(line: 142, column: 2, scope: !1034, inlinedAt: !1023)
!1037 = !DILocation(line: 143, column: 3, scope: !1038, inlinedAt: !1023)
!1038 = distinct !DILexicalBlock(scope: !1026, file: !3, line: 142, column: 9)
!1039 = !DILocation(line: 145, column: 2, scope: !1019, inlinedAt: !1023)
!1040 = !DILocation(line: 146, column: 28, scope: !1041, inlinedAt: !1023)
!1041 = distinct !DILexicalBlock(scope: !1042, file: !3, line: 146, column: 2)
!1042 = distinct !DILexicalBlock(scope: !1019, file: !3, line: 146, column: 2)
!1043 = !{!1028, !1029, i64 160}
!1044 = !DILocation(line: 146, column: 16, scope: !1041, inlinedAt: !1023)
!1045 = !DILocation(line: 146, column: 2, scope: !1042, inlinedAt: !1023)
!1046 = !DILocation(line: 147, column: 7, scope: !1047, inlinedAt: !1023)
!1047 = distinct !DILexicalBlock(scope: !1048, file: !3, line: 147, column: 7)
!1048 = distinct !DILexicalBlock(scope: !1041, file: !3, line: 146, column: 47)
!1049 = !{!1028, !1030, i64 168}
!1050 = !DILocalVariable(name: "pz", arg: 1, scope: !1051, file: !17, line: 440, type: !636)
!1051 = distinct !DISubprogram(name: "zval_get_type", scope: !17, file: !17, line: 440, type: !1052, scopeLine: 440, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !1054)
!1052 = !DISubroutineType(types: !1053)
!1053 = !{!72, !636}
!1054 = !{!1050}
!1055 = !DILocation(line: 0, scope: !1051, inlinedAt: !1056)
!1056 = distinct !DILocation(line: 147, column: 7, scope: !1047, inlinedAt: !1023)
!1057 = !DILocation(line: 441, column: 13, scope: !1051, inlinedAt: !1056)
!1058 = !DILocation(line: 441, column: 18, scope: !1051, inlinedAt: !1056)
!1059 = !{!938, !938, i64 0}
!1060 = !DILocation(line: 147, column: 37, scope: !1047, inlinedAt: !1023)
!1061 = !DILocation(line: 147, column: 7, scope: !1048, inlinedAt: !1023)
!1062 = !DILocation(line: 148, column: 31, scope: !1063, inlinedAt: !1023)
!1063 = distinct !DILexicalBlock(scope: !1047, file: !3, line: 147, column: 51)
!1064 = !DILocation(line: 148, column: 4, scope: !1063, inlinedAt: !1023)
!1065 = !DILocation(line: 149, column: 3, scope: !1063, inlinedAt: !1023)
!1066 = !DILocation(line: 150, column: 31, scope: !1067, inlinedAt: !1023)
!1067 = distinct !DILexicalBlock(scope: !1047, file: !3, line: 149, column: 10)
!1068 = !DILocation(line: 150, column: 4, scope: !1067, inlinedAt: !1023)
!1069 = !DILocation(line: 146, column: 43, scope: !1041, inlinedAt: !1023)
!1070 = distinct !{!1070, !1045, !1071}
!1071 = !DILocation(line: 152, column: 2, scope: !1042, inlinedAt: !1023)
!1072 = !DILocation(line: 153, column: 2, scope: !1019, inlinedAt: !1023)
!1073 = !DILocation(line: 272, column: 3, scope: !1024)
!1074 = !DILocation(line: 0, scope: !999)
!1075 = !DILocation(line: 274, column: 29, scope: !1005)
!1076 = !{!1028, !1029, i64 60}
!1077 = !DILocation(line: 274, column: 17, scope: !1005)
!1078 = !DILocation(line: 274, column: 3, scope: !1006)
!1079 = !DILocation(line: 278, column: 18, scope: !1003)
!1080 = !{!1028, !1030, i64 64}
!1081 = !DILocation(line: 278, column: 29, scope: !1003)
!1082 = !{!1083, !938, i64 28}
!1083 = !{!"_zend_op", !1030, i64 0, !938, i64 8, !938, i64 12, !938, i64 16, !1029, i64 20, !1029, i64 24, !938, i64 28, !938, i64 29, !938, i64 30, !938, i64 31}
!1084 = !DILocation(line: 278, column: 36, scope: !1003)
!1085 = !DILocation(line: 278, column: 55, scope: !1003)
!1086 = !DILocation(line: 279, column: 26, scope: !1003)
!1087 = !{!1083, !938, i64 30}
!1088 = !DILocation(line: 279, column: 35, scope: !1003)
!1089 = !DILocation(line: 279, column: 47, scope: !1003)
!1090 = !DILocation(line: 280, column: 5, scope: !1003)
!1091 = !DILocation(line: 0, scope: !1051, inlinedAt: !1092)
!1092 = distinct !DILocation(line: 280, column: 5, scope: !1003)
!1093 = !DILocation(line: 441, column: 13, scope: !1051, inlinedAt: !1092)
!1094 = !DILocation(line: 441, column: 18, scope: !1051, inlinedAt: !1092)
!1095 = !DILocation(line: 280, column: 44, scope: !1003)
!1096 = !DILocation(line: 280, column: 57, scope: !1003)
!1097 = !DILocation(line: 281, column: 5, scope: !1003)
!1098 = !{!1099, !1101, i64 16}
!1099 = !{!"_zend_string", !1100, i64 0, !1101, i64 8, !1101, i64 16, !938, i64 24}
!1100 = !{!"_zend_refcounted_h", !1029, i64 0, !938, i64 4}
!1101 = !{!"long", !938, i64 0}
!1102 = !DILocation(line: 281, column: 46, scope: !1003)
!1103 = !DILocation(line: 281, column: 74, scope: !1003)
!1104 = !DILocation(line: 282, column: 12, scope: !1003)
!1105 = !DILocation(line: 282, column: 5, scope: !1003)
!1106 = !DILocation(line: 282, column: 72, scope: !1003)
!1107 = !DILocation(line: 278, column: 8, scope: !1004)
!1108 = !DILocation(line: 0, scope: !1002)
!1109 = !DILocation(line: 297, column: 5, scope: !1110)
!1110 = distinct !DILexicalBlock(scope: !1002, file: !3, line: 297, column: 5)
!1111 = !DILocation(line: 299, column: 5, scope: !1002)
!1112 = !DILocation(line: 299, column: 24, scope: !1002)
!1113 = !DILocation(line: 286, column: 27, scope: !1002)
!1114 = !DILocation(line: 285, column: 5, scope: !1115)
!1115 = distinct !DILexicalBlock(scope: !1002, file: !3, line: 285, column: 5)
!1116 = !DILocation(line: 299, column: 14, scope: !1002)
!1117 = !DILocation(line: 299, column: 35, scope: !1002)
!1118 = !DILocation(line: 299, column: 42, scope: !1002)
!1119 = !DILocation(line: 299, column: 60, scope: !1002)
!1120 = !DILocation(line: 299, column: 78, scope: !1002)
!1121 = !DILocation(line: 299, column: 83, scope: !1002)
!1122 = !DILocation(line: 299, column: 66, scope: !1002)
!1123 = !DILocation(line: 299, column: 89, scope: !1002)
!1124 = !DILocation(line: 300, column: 21, scope: !1125)
!1125 = distinct !DILexicalBlock(scope: !1126, file: !3, line: 300, column: 10)
!1126 = distinct !DILexicalBlock(scope: !1002, file: !3, line: 299, column: 104)
!1127 = !DILocation(line: 300, column: 70, scope: !1125)
!1128 = !DILocation(line: 301, column: 11, scope: !1129)
!1129 = distinct !DILexicalBlock(scope: !1125, file: !3, line: 300, column: 120)
!1130 = !DILocalVariable(name: "op_array", arg: 1, scope: !1131, file: !3, line: 193, type: !831)
!1131 = distinct !DISubprogram(name: "ulop_get_user_opcode", scope: !3, file: !3, line: 193, type: !1132, scopeLine: 193, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !1134)
!1132 = !DISubroutineType(types: !1133)
!1133 = !{!7, !831, !18}
!1134 = !{!1130, !1135}
!1135 = !DILocalVariable(name: "i", arg: 2, scope: !1131, file: !3, line: 193, type: !18)
!1136 = !DILocation(line: 0, scope: !1131, inlinedAt: !1137)
!1137 = distinct !DILocation(line: 305, column: 24, scope: !1138)
!1138 = distinct !DILexicalBlock(scope: !1139, file: !3, line: 301, column: 23)
!1139 = distinct !DILexicalBlock(scope: !1129, file: !3, line: 301, column: 11)
!1140 = !DILocation(line: 194, column: 6, scope: !1141, inlinedAt: !1137)
!1141 = distinct !DILexicalBlock(scope: !1131, file: !3, line: 194, column: 6)
!1142 = !DILocation(line: 194, column: 27, scope: !1141, inlinedAt: !1137)
!1143 = !DILocation(line: 194, column: 51, scope: !1141, inlinedAt: !1137)
!1144 = !DILocation(line: 195, column: 3, scope: !1141, inlinedAt: !1137)
!1145 = !DILocation(line: 0, scope: !1051, inlinedAt: !1146)
!1146 = distinct !DILocation(line: 195, column: 3, scope: !1141, inlinedAt: !1137)
!1147 = !DILocation(line: 441, column: 13, scope: !1051, inlinedAt: !1146)
!1148 = !DILocation(line: 441, column: 18, scope: !1051, inlinedAt: !1146)
!1149 = !DILocation(line: 195, column: 42, scope: !1141, inlinedAt: !1137)
!1150 = !DILocation(line: 195, column: 53, scope: !1141, inlinedAt: !1137)
!1151 = !DILocation(line: 196, column: 3, scope: !1141, inlinedAt: !1137)
!1152 = !DILocation(line: 196, column: 42, scope: !1141, inlinedAt: !1137)
!1153 = !DILocation(line: 194, column: 6, scope: !1131, inlinedAt: !1137)
!1154 = !DILocation(line: 198, column: 10, scope: !1155, inlinedAt: !1137)
!1155 = distinct !DILexicalBlock(scope: !1141, file: !3, line: 197, column: 4)
!1156 = !DILocation(line: 198, column: 3, scope: !1155, inlinedAt: !1137)
!1157 = !DILocation(line: 200, column: 3, scope: !1158, inlinedAt: !1137)
!1158 = distinct !DILexicalBlock(scope: !1159, file: !3, line: 199, column: 59)
!1159 = distinct !DILexicalBlock(scope: !1141, file: !3, line: 199, column: 13)
!1160 = !DILocation(line: 201, column: 2, scope: !1158, inlinedAt: !1137)
!1161 = !DILocation(line: 202, column: 3, scope: !1162, inlinedAt: !1137)
!1162 = distinct !DILexicalBlock(scope: !1159, file: !3, line: 201, column: 9)
!1163 = !DILocation(line: 306, column: 8, scope: !1164)
!1164 = distinct !DILexicalBlock(scope: !1138, file: !3, line: 306, column: 8)
!1165 = !DILocation(line: 307, column: 7, scope: !1138)
!1166 = !DILocation(line: 311, column: 19, scope: !1167)
!1167 = distinct !DILexicalBlock(scope: !1168, file: !3, line: 307, column: 30)
!1168 = distinct !DILexicalBlock(scope: !1139, file: !3, line: 307, column: 18)
!1169 = !DILocation(line: 312, column: 81, scope: !1167)
!1170 = !DILocation(line: 312, column: 92, scope: !1167)
!1171 = !{!1083, !938, i64 29}
!1172 = !DILocalVariable(name: "op_array", arg: 1, scope: !1173, file: !3, line: 213, type: !831)
!1173 = distinct !DISubprogram(name: "ulop_get_user_op_type", scope: !3, file: !3, line: 213, type: !1174, scopeLine: 213, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !1176)
!1174 = !DISubroutineType(types: !1175)
!1175 = !{!7, !831, !18, !7, !7}
!1176 = !{!1172, !1177, !1178, !1179}
!1177 = !DILocalVariable(name: "i", arg: 2, scope: !1173, file: !3, line: 213, type: !18)
!1178 = !DILocalVariable(name: "dest_op_flags", arg: 3, scope: !1173, file: !3, line: 213, type: !7)
!1179 = !DILocalVariable(name: "source_type", arg: 4, scope: !1173, file: !3, line: 213, type: !7)
!1180 = !DILocation(line: 0, scope: !1173, inlinedAt: !1181)
!1181 = distinct !DILocation(line: 312, column: 26, scope: !1167)
!1182 = !DILocation(line: 214, column: 20, scope: !1183, inlinedAt: !1181)
!1183 = distinct !DILexicalBlock(scope: !1173, file: !3, line: 214, column: 6)
!1184 = !DILocation(line: 214, column: 6, scope: !1173, inlinedAt: !1181)
!1185 = !DILocation(line: 0, scope: !1167)
!1186 = !DILocation(line: 217, column: 6, scope: !1173, inlinedAt: !1181)
!1187 = !DILocation(line: 0, scope: !1051, inlinedAt: !1188)
!1188 = distinct !DILocation(line: 219, column: 4, scope: !1189, inlinedAt: !1181)
!1189 = distinct !DILexicalBlock(scope: !1190, file: !3, line: 218, column: 7)
!1190 = distinct !DILexicalBlock(scope: !1191, file: !3, line: 217, column: 32)
!1191 = distinct !DILexicalBlock(scope: !1173, file: !3, line: 217, column: 6)
!1192 = !DILocation(line: 219, column: 43, scope: !1189, inlinedAt: !1181)
!1193 = !DILocation(line: 313, column: 21, scope: !1167)
!1194 = !DILocation(line: 218, column: 7, scope: !1190, inlinedAt: !1181)
!1195 = !DILocalVariable(name: "source_node", arg: 5, scope: !1196, file: !3, line: 233, type: !55)
!1196 = distinct !DISubprogram(name: "ulop_get_user_op_val", scope: !3, file: !3, line: 233, type: !1197, scopeLine: 233, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !1199)
!1197 = !DISubroutineType(types: !1198)
!1198 = !{!55, !831, !18, !7, !7, !55}
!1199 = !{!1200, !1201, !1202, !1203, !1195}
!1200 = !DILocalVariable(name: "op_array", arg: 1, scope: !1196, file: !3, line: 233, type: !831)
!1201 = !DILocalVariable(name: "i", arg: 2, scope: !1196, file: !3, line: 233, type: !18)
!1202 = !DILocalVariable(name: "dest_op_flags", arg: 3, scope: !1196, file: !3, line: 233, type: !7)
!1203 = !DILocalVariable(name: "source_type", arg: 4, scope: !1196, file: !3, line: 233, type: !7)
!1204 = !DILocation(line: 0, scope: !1196, inlinedAt: !1205)
!1205 = distinct !DILocation(line: 313, column: 21, scope: !1167)
!1206 = !DILocation(line: 0, scope: !1051, inlinedAt: !1207)
!1207 = distinct !DILocation(line: 236, column: 13, scope: !1208, inlinedAt: !1205)
!1208 = distinct !DILexicalBlock(scope: !1209, file: !3, line: 236, column: 13)
!1209 = distinct !DILexicalBlock(scope: !1196, file: !3, line: 234, column: 6)
!1210 = !DILocation(line: 236, column: 13, scope: !1209, inlinedAt: !1205)
!1211 = !DILocation(line: 235, column: 21, scope: !1212, inlinedAt: !1205)
!1212 = distinct !DILexicalBlock(scope: !1209, file: !3, line: 234, column: 43)
!1213 = !DILocation(line: 239, column: 2, scope: !1196, inlinedAt: !1205)
!1214 = !DILocation(line: 236, column: 52, scope: !1208, inlinedAt: !1205)
!1215 = !DILocation(line: 314, column: 8, scope: !1216)
!1216 = distinct !DILexicalBlock(scope: !1167, file: !3, line: 314, column: 8)
!1217 = !DILocation(line: 315, column: 7, scope: !1167)
!1218 = !DILocation(line: 319, column: 19, scope: !1219)
!1219 = distinct !DILexicalBlock(scope: !1220, file: !3, line: 315, column: 30)
!1220 = distinct !DILexicalBlock(scope: !1168, file: !3, line: 315, column: 18)
!1221 = !DILocation(line: 320, column: 81, scope: !1219)
!1222 = !DILocation(line: 320, column: 92, scope: !1219)
!1223 = !DILocation(line: 0, scope: !1173, inlinedAt: !1224)
!1224 = distinct !DILocation(line: 320, column: 26, scope: !1219)
!1225 = !DILocation(line: 214, column: 20, scope: !1183, inlinedAt: !1224)
!1226 = !DILocation(line: 214, column: 6, scope: !1173, inlinedAt: !1224)
!1227 = !DILocation(line: 0, scope: !1219)
!1228 = !DILocation(line: 217, column: 6, scope: !1173, inlinedAt: !1224)
!1229 = !DILocation(line: 0, scope: !1051, inlinedAt: !1230)
!1230 = distinct !DILocation(line: 219, column: 4, scope: !1189, inlinedAt: !1224)
!1231 = !DILocation(line: 219, column: 43, scope: !1189, inlinedAt: !1224)
!1232 = !DILocation(line: 321, column: 21, scope: !1219)
!1233 = !DILocation(line: 218, column: 7, scope: !1190, inlinedAt: !1224)
!1234 = !DILocation(line: 0, scope: !1196, inlinedAt: !1235)
!1235 = distinct !DILocation(line: 321, column: 21, scope: !1219)
!1236 = !DILocation(line: 0, scope: !1051, inlinedAt: !1237)
!1237 = distinct !DILocation(line: 236, column: 13, scope: !1208, inlinedAt: !1235)
!1238 = !DILocation(line: 236, column: 13, scope: !1209, inlinedAt: !1235)
!1239 = !DILocation(line: 235, column: 21, scope: !1212, inlinedAt: !1235)
!1240 = !DILocation(line: 239, column: 2, scope: !1196, inlinedAt: !1235)
!1241 = !DILocation(line: 236, column: 52, scope: !1208, inlinedAt: !1235)
!1242 = !DILocation(line: 322, column: 8, scope: !1243)
!1243 = distinct !DILexicalBlock(scope: !1219, file: !3, line: 322, column: 8)
!1244 = !DILocation(line: 323, column: 7, scope: !1219)
!1245 = !DILocalVariable(name: "op_array", arg: 1, scope: !1246, file: !3, line: 247, type: !831)
!1246 = distinct !DISubprogram(name: "ulop_get_user_ext_val", scope: !3, file: !3, line: 247, type: !1132, scopeLine: 247, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !1247)
!1247 = !{!1245, !1248}
!1248 = !DILocalVariable(name: "i", arg: 2, scope: !1246, file: !3, line: 247, type: !18)
!1249 = !DILocation(line: 0, scope: !1246, inlinedAt: !1250)
!1250 = distinct !DILocation(line: 327, column: 32, scope: !1251)
!1251 = distinct !DILexicalBlock(scope: !1252, file: !3, line: 323, column: 30)
!1252 = distinct !DILexicalBlock(scope: !1220, file: !3, line: 323, column: 18)
!1253 = !DILocation(line: 248, column: 6, scope: !1254, inlinedAt: !1250)
!1254 = distinct !DILexicalBlock(scope: !1246, file: !3, line: 248, column: 6)
!1255 = !DILocation(line: 248, column: 27, scope: !1254, inlinedAt: !1250)
!1256 = !DILocation(line: 248, column: 36, scope: !1254, inlinedAt: !1250)
!1257 = !DILocation(line: 248, column: 48, scope: !1254, inlinedAt: !1250)
!1258 = !DILocation(line: 249, column: 3, scope: !1254, inlinedAt: !1250)
!1259 = !DILocation(line: 0, scope: !1051, inlinedAt: !1260)
!1260 = distinct !DILocation(line: 249, column: 3, scope: !1254, inlinedAt: !1250)
!1261 = !DILocation(line: 441, column: 13, scope: !1051, inlinedAt: !1260)
!1262 = !DILocation(line: 441, column: 18, scope: !1051, inlinedAt: !1260)
!1263 = !DILocation(line: 249, column: 42, scope: !1254, inlinedAt: !1250)
!1264 = !DILocation(line: 248, column: 6, scope: !1246, inlinedAt: !1250)
!1265 = !DILocation(line: 251, column: 10, scope: !1266, inlinedAt: !1250)
!1266 = distinct !DILexicalBlock(scope: !1254, file: !3, line: 250, column: 4)
!1267 = !DILocation(line: 251, column: 3, scope: !1266, inlinedAt: !1250)
!1268 = !DILocation(line: 253, column: 2, scope: !1246, inlinedAt: !1250)
!1269 = !DILocation(line: 328, column: 8, scope: !1270)
!1270 = distinct !DILexicalBlock(scope: !1251, file: !3, line: 328, column: 8)
!1271 = !DILocation(line: 254, column: 2, scope: !1246, inlinedAt: !1250)
!1272 = !DILocation(line: 329, column: 7, scope: !1251)
!1273 = !DILocation(line: 0, scope: !1139)
!1274 = !DILocation(line: 330, column: 12, scope: !1129)
!1275 = !DILocation(line: 331, column: 6, scope: !1129)
!1276 = !DILocation(line: 335, column: 20, scope: !1277)
!1277 = distinct !DILexicalBlock(scope: !1126, file: !3, line: 335, column: 10)
!1278 = !DILocation(line: 335, column: 31, scope: !1277)
!1279 = !DILocation(line: 335, column: 57, scope: !1277)
!1280 = !DILocation(line: 343, column: 12, scope: !1281)
!1281 = distinct !DILexicalBlock(scope: !1277, file: !3, line: 342, column: 7)
!1282 = !DILocation(line: 344, column: 6, scope: !1281)
!1283 = !DILocation(line: 345, column: 55, scope: !1284)
!1284 = distinct !DILexicalBlock(scope: !1126, file: !3, line: 345, column: 10)
!1285 = distinct !{!1285, !1111, !1286}
!1286 = !DILocation(line: 353, column: 5, scope: !1002)
!1287 = !DILocation(line: 350, column: 12, scope: !1288)
!1288 = distinct !DILexicalBlock(scope: !1284, file: !3, line: 349, column: 7)
!1289 = !DILocation(line: 351, column: 6, scope: !1288)
!1290 = !DILocation(line: 358, column: 15, scope: !1291)
!1291 = distinct !DILexicalBlock(scope: !1002, file: !3, line: 358, column: 9)
!1292 = !DILocation(line: 358, column: 9, scope: !1002)
!1293 = !DILocation(line: 359, column: 34, scope: !1294)
!1294 = distinct !DILexicalBlock(scope: !1291, file: !3, line: 358, column: 20)
!1295 = !DILocation(line: 360, column: 16, scope: !1296)
!1296 = distinct !DILexicalBlock(scope: !1294, file: !3, line: 360, column: 10)
!1297 = !DILocation(line: 360, column: 10, scope: !1294)
!1298 = !DILocation(line: 361, column: 28, scope: !1299)
!1299 = distinct !DILexicalBlock(scope: !1296, file: !3, line: 360, column: 21)
!1300 = !DILocation(line: 361, column: 37, scope: !1299)
!1301 = !DILocation(line: 362, column: 41, scope: !1299)
!1302 = !{i64 0, i64 4, !1303, i64 0, i64 4, !1303, i64 0, i64 4, !1303, i64 0, i64 4, !1303, i64 0, i64 4, !1303}
!1303 = !{!1029, !1029, i64 0}
!1304 = !DILocation(line: 363, column: 17, scope: !1305)
!1305 = distinct !DILexicalBlock(scope: !1299, file: !3, line: 363, column: 11)
!1306 = !DILocation(line: 363, column: 11, scope: !1299)
!1307 = !DILocation(line: 364, column: 18, scope: !1308)
!1308 = distinct !DILexicalBlock(scope: !1305, file: !3, line: 363, column: 22)
!1309 = !DILocation(line: 364, column: 29, scope: !1308)
!1310 = !DILocation(line: 364, column: 38, scope: !1308)
!1311 = !DILocation(line: 365, column: 42, scope: !1308)
!1312 = !DILocation(line: 366, column: 18, scope: !1313)
!1313 = distinct !DILexicalBlock(scope: !1308, file: !3, line: 366, column: 12)
!1314 = !DILocation(line: 366, column: 12, scope: !1308)
!1315 = !DILocation(line: 367, column: 19, scope: !1316)
!1316 = distinct !DILexicalBlock(scope: !1313, file: !3, line: 366, column: 23)
!1317 = !DILocation(line: 367, column: 30, scope: !1316)
!1318 = !DILocation(line: 367, column: 45, scope: !1316)
!1319 = !{!1083, !1029, i64 20}
!1320 = !DILocation(line: 368, column: 8, scope: !1316)
!1321 = !DILocation(line: 374, column: 8, scope: !1322)
!1322 = distinct !DILexicalBlock(scope: !1004, file: !3, line: 374, column: 8)
!1323 = !DILocation(line: 374, column: 8, scope: !1004)
!1324 = !DILocation(line: 375, column: 32, scope: !1325)
!1325 = distinct !DILexicalBlock(scope: !1322, file: !3, line: 374, column: 30)
!1326 = !DILocalVariable(name: "opline", arg: 1, scope: !1327, file: !3, line: 161, type: !48)
!1327 = distinct !DISubprogram(name: "ulop_dump_opline", scope: !3, file: !3, line: 161, type: !1328, scopeLine: 161, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !1330)
!1328 = !DISubroutineType(types: !1329)
!1329 = !{null, !48, !7}
!1330 = !{!1326, !1331}
!1331 = !DILocalVariable(name: "i", arg: 2, scope: !1327, file: !3, line: 161, type: !7)
!1332 = !DILocation(line: 0, scope: !1327, inlinedAt: !1333)
!1333 = distinct !DILocation(line: 375, column: 5, scope: !1325)
!1334 = !DILocation(line: 161, column: 38, scope: !1327, inlinedAt: !1333)
!1335 = !DILocation(line: 162, column: 20, scope: !1336, inlinedAt: !1333)
!1336 = distinct !DILexicalBlock(scope: !1327, file: !3, line: 162, column: 6)
!1337 = !DILocation(line: 162, column: 6, scope: !1327, inlinedAt: !1333)
!1338 = !DILocation(line: 165, column: 4, scope: !1339, inlinedAt: !1333)
!1339 = distinct !DILexicalBlock(scope: !1336, file: !3, line: 162, column: 43)
!1340 = !DILocation(line: 166, column: 4, scope: !1339, inlinedAt: !1333)
!1341 = !DILocation(line: 168, column: 4, scope: !1339, inlinedAt: !1333)
!1342 = !DILocation(line: 171, column: 4, scope: !1339, inlinedAt: !1333)
!1343 = !DILocation(line: 163, column: 3, scope: !1339, inlinedAt: !1333)
!1344 = !DILocation(line: 174, column: 2, scope: !1339, inlinedAt: !1333)
!1345 = !DILocation(line: 175, column: 3, scope: !1346, inlinedAt: !1333)
!1346 = distinct !DILexicalBlock(scope: !1336, file: !3, line: 174, column: 9)
!1347 = !DILocation(line: 274, column: 36, scope: !1005)
!1348 = distinct !{!1348, !1078, !1349}
!1349 = !DILocation(line: 377, column: 3, scope: !1006)
!1350 = !DILocation(line: 379, column: 7, scope: !1351)
!1351 = distinct !DILexicalBlock(scope: !999, file: !3, line: 379, column: 7)
!1352 = !DILocation(line: 379, column: 7, scope: !999)
!1353 = !DILocalVariable(name: "op_array", arg: 1, scope: !1354, file: !3, line: 184, type: !831)
!1354 = distinct !DISubprogram(name: "ulop_dump_oparray_footer", scope: !3, file: !3, line: 184, type: !829, scopeLine: 184, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !1355)
!1355 = !{!1353}
!1356 = !DILocation(line: 0, scope: !1354, inlinedAt: !1357)
!1357 = distinct !DILocation(line: 380, column: 4, scope: !1358)
!1358 = distinct !DILexicalBlock(scope: !1351, file: !3, line: 379, column: 29)
!1359 = !DILocation(line: 185, column: 2, scope: !1354, inlinedAt: !1357)
!1360 = !DILocation(line: 381, column: 3, scope: !1358)
!1361 = !DILocation(line: 383, column: 1, scope: !995)
!1362 = !DISubprogram(name: "zend_get_opcode_flags", scope: !945, file: !945, line: 75, type: !1363, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!1363 = !DISubroutineType(types: !1364)
!1364 = !{!7, !73}
!1365 = distinct !DISubprogram(name: "get_module", scope: !3, file: !3, line: 414, type: !1366, scopeLine: 414, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2, retainedNodes: !948)
!1366 = !DISubroutineType(types: !1367)
!1367 = !{!386}
!1368 = !DILocation(line: 414, column: 1, scope: !1365)
!1369 = !DISubprogram(name: "php_printf", scope: !1370, file: !1370, line: 316, type: !1371, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!1370 = !DIFile(filename: "/usr/include/php/20190902/main/php.h", directory: "")
!1371 = !DISubroutineType(types: !1372)
!1372 = !{!122, !32, null}
!1373 = !DISubprogram(name: "zend_error", scope: !175, file: !175, line: 298, type: !1374, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !948)
!1374 = !DISubroutineType(types: !1375)
!1375 = !{null, !18, !32, null}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment