@@ -977,30 +977,34 @@ IRExecutionUnit::FindSymbol(lldb_private::ConstString name, bool &missing_weak)
977
977
978
978
void IRExecutionUnit::GetStaticInitializers (
979
979
std::vector<lldb::addr_t > &static_initializers) {
980
- if (llvm::GlobalVariable *global_ctors =
981
- m_module->getNamedGlobal (" llvm.global_ctors" )) {
982
- if (llvm::ConstantArray *ctor_array = llvm::dyn_cast<llvm::ConstantArray>(
983
- global_ctors->getInitializer ())) {
984
- for (llvm::Use &ctor_use : ctor_array->operands ()) {
985
- if (llvm::ConstantStruct *ctor_struct =
986
- llvm::dyn_cast<llvm::ConstantStruct>(ctor_use)) {
987
- lldbassert (ctor_struct->getNumOperands () ==
988
- 3 ); // this is standardized
989
- if (llvm::Function *ctor_function =
990
- llvm::dyn_cast<llvm::Function>(ctor_struct->getOperand (1 ))) {
991
- ConstString ctor_function_name_cs (ctor_function->getName ().str ());
992
-
993
- for (JittedFunction &jitted_function : m_jitted_functions) {
994
- if (ctor_function_name_cs == jitted_function.m_name ) {
995
- if (jitted_function.m_remote_addr != LLDB_INVALID_ADDRESS) {
996
- static_initializers.push_back (jitted_function.m_remote_addr );
997
- }
998
- break ;
999
- }
1000
- }
1001
- }
1002
- }
1003
- }
980
+ llvm::GlobalVariable *global_ctors =
981
+ m_module->getNamedGlobal (" llvm.global_ctors" );
982
+ if (!global_ctors)
983
+ return ;
984
+ auto *ctor_array =
985
+ llvm::dyn_cast<llvm::ConstantArray>(global_ctors->getInitializer ());
986
+ if (!ctor_array)
987
+ return ;
988
+
989
+ for (llvm::Use &ctor_use : ctor_array->operands ()) {
990
+ auto *ctor_struct = llvm::dyn_cast<llvm::ConstantStruct>(ctor_use);
991
+ if (!ctor_struct)
992
+ continue ;
993
+ // this is standardized
994
+ lldbassert (ctor_struct->getNumOperands () == 3 );
995
+ auto *ctor_function =
996
+ llvm::dyn_cast<llvm::Function>(ctor_struct->getOperand (1 ));
997
+ if (!ctor_function)
998
+ continue ;
999
+ ConstString ctor_function_name_cs (ctor_function->getName ().str ());
1000
+
1001
+ for (JittedFunction &jitted_function : m_jitted_functions) {
1002
+ if (ctor_function_name_cs != jitted_function.m_name )
1003
+ continue ;
1004
+ if (jitted_function.m_remote_addr == LLDB_INVALID_ADDRESS)
1005
+ continue ;
1006
+ static_initializers.push_back (jitted_function.m_remote_addr );
1007
+ break ;
1004
1008
}
1005
1009
}
1006
1010
}
0 commit comments