ltmp_0_7 = malloc(((unsigned )(&(((signed char (*)[784])/*NULL*/0)[1u])))); Instead, just emit the literal constant, like this: ltmp_0_7 = malloc(784u); This works around a bug in ICC 8.1 compiling the CBE generated code. :-( llvm-svn: 20415