Issue with "t -> signature is meaningless, use custom typechecking"


I was implementing the llvm_any_type in my intrinsic

def int_csa_xxx : Intrinsic<[llvm_any_ty], [llvm_i32_ty]>;

as the following in its corresponding builtins in Builtins.def:

BUILTIN(__builtin_xxx, “v.”, “nt”)

the “t” was sufficient here to not perform any type checking.

The type checking was handled in CGBuiltin.cpp.

This was working until recently.

Do you know which change might have caused this?


Adding cfe-dev; generally, you'll get better responses there to questions about clang.

You forgot to include a description of what, exactly, is broken.

In general, you should be doing custom type-checking in SemaChecking.cpp; some important operations can't be performed correctly in CGBuiltin, like lvalue-to-rvalue conversions.