Assert that the llvm::Function is created with the same name as requested (#4306)

This will catch some cases of bugs in the name mangling logic - if
within a single file we incorrectly mangle two distinct entities to the
same name, llvm::Function will assign a new name to the second copy
showing one of the two entities should have a distinct name/is missing
something in their mangling.
This commit is contained in:
David Blaikie
2024-09-13 00:33:29 +00:00
committed by GitHub
parent 88f3b3470f
commit ec63d2be21
+3
View File
@@ -249,6 +249,9 @@ auto FileContext::BuildFunctionDecl(SemIR::FunctionId function_id)
llvm::Function::Create(function_type, llvm::Function::ExternalLinkage,
mangled_name, llvm_module());
CARBON_CHECK(llvm_function->getName() == mangled_name,
"Mangled name collision: {0}", mangled_name);
// Set up parameters and the return slot.
for (auto [inst_id, arg] :
llvm::zip_equal(param_inst_ids, llvm_function->args())) {