-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Description
| Bugzilla Link | 3390 |
| Resolution | WONTFIX |
| Resolved on | Apr 17, 2019 16:56 |
| Version | unspecified |
| OS | Linux |
| Depends On | llvm/llvm-bugzilla-archive#3391 |
Extended Description
After my attempt to fix the kernel to use same types for input/output regs, I get a failure on 32-bit:
Am I doing something wrong?
$ llvm-gcc testcase-min.i -m32
ExpandIntegerResult #0: 0x28ce838: i64 = Register RCX
cc1: /home/edwin/llvm-bootstrap/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:930: void llvm::DAGTypeLegalizer::ExpandIntegerResult(llvm::SDNode*, unsigned int): Assertion `0 && "Do not know how to expand the result of this operator!"' failed.
testcase-min.i:17: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://developer.apple.com/bugreporter for instructions.
C reduced testcase below, bytecode attached:
/* testcase /
typedef unsigned int __kernel_size_t;
typedef long long __kernel_loff_t;
typedef __kernel_loff_t loff_t;
typedef __kernel_size_t size_t;
attribute ((regparm (0)))
long sys_sendfile64 (int out_fd, int in_fd, loff_t * offset,
size_t count)
{
if (offset)
{
if (__builtin_expect (!!((
{
typeof ((offset)) __ret_pu;
typeof ((offset)) __pu_val;
switch (sizeof ((offset)))
{
case 8:
asm volatile ("call __put_user_8": "=a" (__ret_pu): "A" ((typeof (*(offset))) (__pu_val)), "c" (offset):"ebx");}
(int) __ret_pu;}
)), 0))
return -14;
}
}