@@ -18,7 +18,7 @@ def __init__(self, llvm_module, handler: DependencyHandler, assignments):
1818 self .generated : list [str ] = []
1919 self .generated_debug_info : list = []
2020 # Use struct_name and field_name as key instead of Field object
21- self .generated_field_names : dict [str , dict [str , str ]] = {}
21+ self .generated_field_names : dict [str , dict [str , ir . GlobalVariable ]] = {}
2222 self .assignments : dict [str , AssignmentInfo ] = assignments
2323 if not handler .is_ready :
2424 raise ImportError (
@@ -87,10 +87,10 @@ def struct_processor(self, struct, processing_stack=None):
8787 struct .name in self .generated_field_names
8888 and field_name in self .generated_field_names [struct .name ]
8989 ):
90- field_co_re_name = self .generated_field_names [struct .name ][
90+ field_global_variable = self .generated_field_names [struct .name ][
9191 field_name
9292 ]
93- members_dict [field_name ] = (field_co_re_name , field )
93+ members_dict [field_name ] = (field_global_variable , field )
9494 else :
9595 raise ValueError (
9696 f"llvm global name not found for struct field { field_name } "
@@ -140,28 +140,28 @@ def gen_ir(self, struct, generated_debug_info):
140140 field_co_re_name = self ._struct_name_generator (
141141 struct , field , field_index , True , 0 , containing_type_size
142142 )
143- self .generated_field_names [struct .name ][field_name ] = (
144- field_co_re_name
145- )
146143 globvar = ir .GlobalVariable (
147144 self .llvm_module , ir .IntType (64 ), name = field_co_re_name
148145 )
149146 globvar .linkage = "external"
150147 globvar .set_metadata ("llvm.preserve.access.index" , debug_info )
148+ self .generated_field_names [struct .name ][field_name ] = (
149+ globvar
150+ )
151151 field_index += 1
152152 continue
153153 for i in range (0 , array_size ):
154154 field_co_re_name = self ._struct_name_generator (
155155 struct , field , field_index , True , i , containing_type_size
156156 )
157- self .generated_field_names [struct .name ][field_name ] = (
158- field_co_re_name
159- )
160157 globvar = ir .GlobalVariable (
161158 self .llvm_module , ir .IntType (64 ), name = field_co_re_name
162159 )
163160 globvar .linkage = "external"
164161 globvar .set_metadata ("llvm.preserve.access.index" , debug_info )
162+ self .generated_field_names [struct .name ][field_name ] = (
163+ globvar
164+ )
165165 field_index += 1
166166 elif field .type_size is not None :
167167 array_size = field .type_size
@@ -174,26 +174,26 @@ def gen_ir(self, struct, generated_debug_info):
174174 field_co_re_name = self ._struct_name_generator (
175175 struct , field , field_index , True , i , containing_type_size
176176 )
177- self .generated_field_names [struct .name ][field_name ] = (
178- field_co_re_name
179- )
180177 globvar = ir .GlobalVariable (
181178 self .llvm_module , ir .IntType (64 ), name = field_co_re_name
182179 )
183180 globvar .linkage = "external"
184181 globvar .set_metadata ("llvm.preserve.access.index" , debug_info )
182+ self .generated_field_names [struct .name ][field_name ] = (
183+ globvar
184+ )
185185 field_index += 1
186186 else :
187187 field_co_re_name = self ._struct_name_generator (
188188 struct , field , field_index
189189 )
190- self .generated_field_names [struct .name ][field_name ] = field_co_re_name
191190 field_index += 1
192191 globvar = ir .GlobalVariable (
193192 self .llvm_module , ir .IntType (64 ), name = field_co_re_name
194193 )
195194 globvar .linkage = "external"
196195 globvar .set_metadata ("llvm.preserve.access.index" , debug_info )
196+ self .generated_field_names [struct .name ][field_name ] = globvar
197197 return debug_info
198198
199199 def _struct_name_generator (
0 commit comments