[patch] fix aicasm build with clang.

Pawel Worach pawel.worach at gmail.com
Wed Jul 14 13:07:32 UTC 2010


On Jul 14, 2010, at 13:57, Andrew Reilly wrote:
> On Wed, Jul 14, 2010 at 11:44:57AM +0200, Pawel Worach wrote:
>> sys/dev/aic7xxx/aicasm/aicasm_gram.y:1826:51: error: use of logical || with constant operand; switch to bitwise | or remove constant [-Wlogical-bitwise-confusion]
>>        if (opcode == AIC_OP_AND || opcode == AIC_OP_JNZ || AIC_OP_JZ)
>>                                                         ^  ~~~~~~~~~
>> 
>> Bug ?
> 
> Looks like one to me.  There's no constant value of AIC_OP_JZ
> that can make its inclusion in that line interesting, as is (it
> is probably non-zero, which means that the if-body is always
> executed.  I think that your patch is almost certainly correct.
> 
> [What down-stream effect does this bug have on the SCSI
> controller microcode in question?]
> 

Hmm, it looks like that really broke the assembler...

../aicasm/aicasm: Stopped at file /data/buildslave/freebsd-clang-amd64/src-freebsd/sys/modules/aic7xxx/ahc/../../../dev/aic7xxx/aic7xxx.seq, line 103 - Invalid bit(s) 0x1 in immediate written to ARG_1
../aicasm/aicasm: Removing aic7xxx_seq.h due to error

-- 
Pawel


More information about the freebsd-scsi mailing list