[LLVMbugs] [Bug 4993] New: Assertion `Reg && "this is not a register!"' failed during linux kernel building.

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Sep 16 08:38:35 PDT 2009


http://llvm.org/bugs/show_bug.cgi?id=4993

           Summary: Assertion `Reg && "this is not a register!"' failed
                    during linux kernel building.
           Product: new-bugs
           Version: 2.5
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: joker at ispras.ru
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=3521)
 --> (http://llvm.org/bugs/attachment.cgi?id=3521)
Preprocessed kernel file that causes fail.

I use llvm-gcc to build linux kernel of one of the latest version (2.6.30.5).

llvm-gcc can't process file drivers/acpi/sbshc.c and exit with assertion `Reg
&& "this is not a register!"'.

Preprocessed file drivers/acpi/sbshc.c is attached.

To process it command
llvm-gcc -c drivers_acpi_sbshc.i
is used.

Note that there's no such problem if you just remove one case from switch: 
916c916
<  return ({ typeof(per_cpu__current_task) ret__; switch
(sizeof(per_cpu__current_task)) { case 1: asm("mov" "b ""%%""gs"":%P" "1"",%0"
: "=q" (ret__) : "m" (per_cpu__current_task)); break; case 2: asm("mov" "w
""%%""gs"":%P" "1"",%0" : "=r" (ret__) : "m" (per_cpu__current_task)); break;
case 4: asm("mov" "l ""%%""gs"":%P" "1"",%0" : "=r" (ret__) : "m"
(per_cpu__current_task)); break; case 8: asm("mov" "q ""%%""gs"":%P" "1"",%0" :
"=r" (ret__) : "m" (per_cpu__current_task)); break; default:
__bad_percpu_size(); } ret__; });
---
>  return ({ typeof(per_cpu__current_task) ret__; switch (sizeof(per_cpu__current_task)) { case 1: asm("mov" "b ""%%""gs"":%P" "1"",%0" : "=q" (ret__) : "m" (per_cpu__current_task)); break; case 2: asm("mov" "w ""%%""gs"":%P" "1"",%0" : "=r" (ret__) : "m" (per_cpu__current_task)); break; case 4: asm("mov" "l ""%%""gs"":%P" "1"",%0" : "=r" (ret__) : "m" (per_cpu__current_task)); break; default: __bad_percpu_size(); } ret__; });

So it seems that this problem is connected with this case expression.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list