srctree

Bogdan Romanyuk parent e4977f3e aa31096c
Sema: disallow call to undefined function

inlinesplit
src/Sema.zig added: 16, removed: 4, total 12
@@ -7132,6 +7132,9 @@ fn analyzeCall(
const callee_ty = sema.typeOf(func);
const func_ty_info = mod.typeToFunc(func_ty).?;
const cc = func_ty_info.cc;
if (try sema.resolveValue(func)) |func_val|
if (func_val.isUndef(mod))
return sema.failWithUseOfUndef(block, call_src);
if (cc == .Naked) {
const maybe_decl = try sema.funcDeclSrc(func);
const msg = msg: {
 
test/cases/compile_errors/refer_to_the_type_of_a_generic_function.zig added: 16, removed: 4, total 12
@@ -8,4 +8,4 @@ export fn entry() void {
// backend=stage2
// target=native
//
// :4:5: error: use of undefined value here causes undefined behavior
// :4:6: error: use of undefined value here causes undefined behavior
 
filename was Deleted added: 16, removed: 4, total 12
@@ -0,0 +1,9 @@
pub export fn entry() void {
@as(fn () void, undefined)();
}
 
// error
// backend=stage2
// target=native
//
// :2:31: error: use of undefined value here causes undefined behavior