@@ -66,21 +66,26 @@ extern "C" void initialize_llvm() {
6666}
6767
6868extern " C" void export_asm () {
69- std::basic_string< char > targetTriple = llvm::sys::getDefaultTargetTriple ();
70- TheModule-> setTargetTriple (targetTriple );
69+ // Construct a Triple from the default target triple string
70+ llvm::Triple triple ( llvm::sys::getDefaultTargetTriple () );
7171
72- std::string error;
73- const llvm::Target* target = llvm::TargetRegistry::lookupTarget (targetTriple, error );
72+ // Set the module's target triple (takes llvm::Triple now)
73+ TheModule-> setTargetTriple (triple );
7474
75+ // Look up the target with the Triple
76+ std::string error;
77+ auto target = llvm::TargetRegistry::lookupTarget (triple, error);
7578 if (!target) {
7679 llvm::errs () << " Failed to lookup target: " << error << " \n " ;
7780 return ;
7881 }
7982
83+ // Create the TargetMachine using the Triple (string overload is deprecated)
8084 llvm::TargetOptions opt;
8185 auto RM = std::optional<llvm::Reloc::Model>();
82- llvm::TargetMachine* targetMachine = target->createTargetMachine (targetTriple , " generic" , " " , opt, RM );
86+ auto targetMachine = target->createTargetMachine (triple , " generic" , " " , opt, RM );
8387
88+ // Update the module data layout
8489 TheModule->setDataLayout (targetMachine->createDataLayout ());
8590
8691 // Prepare output file
@@ -122,21 +127,26 @@ extern "C" void export_ir() {
122127}
123128
124129extern " C" void generate_binary () {
125- std::basic_string< char > targetTriple = llvm::sys::getDefaultTargetTriple ();
126- TheModule-> setTargetTriple (targetTriple );
130+ // Construct a Triple from the default target triple string
131+ llvm::Triple triple ( llvm::sys::getDefaultTargetTriple () );
127132
128- std::string error;
129- const llvm::Target* target = llvm::TargetRegistry::lookupTarget (targetTriple, error );
133+ // Set the module's target triple (takes llvm::Triple now)
134+ TheModule-> setTargetTriple (triple );
130135
136+ // Look up the target with the Triple
137+ std::string error;
138+ auto target = llvm::TargetRegistry::lookupTarget (triple, error);
131139 if (!target) {
132140 llvm::errs () << " Failed to lookup target: " << error << " \n " ;
133141 return ;
134142 }
135143
144+ // Create the TargetMachine using the Triple (string overload is deprecated)
136145 llvm::TargetOptions opt;
137146 auto RM = std::optional<llvm::Reloc::Model>();
138- llvm::TargetMachine* targetMachine = target->createTargetMachine (targetTriple , " generic" , " " , opt, RM );
147+ auto targetMachine = target->createTargetMachine (triple , " generic" , " " , opt, RM );
139148
149+ // Update the module data layout
140150 TheModule->setDataLayout (targetMachine->createDataLayout ());
141151
142152 // Prepare output file
0 commit comments