llvm
031d9983 - [SPIRV] Error in backend for vararg functions (#169111)

Commit
148 days ago
[SPIRV] Error in backend for vararg functions (#169111) SPIR-V doesn't support variadic functions, though we make an exception for `printf`. If we don't error, we generate invalid SPIR-V because the backend has no idea how to codegen vararg functions as it is not described in the spec. We get asm like this: ``` %27 = OpFunction %6 None %7 %28 = OpFunctionParameter %4 ; -- End function ``` The above asm is totally invalid, there's no `OpFunctionEnd` and it causes crashes in downstream tools like `spirv-as` and `spirv-link`. We already have many `printf` tests locking down that this doesn't break `printf`, it was already handled elsewhere at the time the error check runs. Note the SPIR-V Translator does the same thing, see [here](https://github.com/KhronosGroup/SPIRV-LLVM-Translator/pull/2703). --------- Signed-off-by: Nick Sarnie <nick.sarnie@intel.com>
Author
Parents
Loading