$ cat z.S #define FOO 15 .macro bar andl $FOO, %eax .endm bar $ cc -c z.S $ objdump -d z.o z.o: file format elf64-x86-64-freebsd Disassembly of section .text: 0000000000000000 <.text>: 0: 23 04 25 05 00 00 00 and 0x5,%eax Note "0x5" not the expected "0xf". $ cc -v FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512 Target: x86_64-unknown-freebsd10.1 Thread model: posix Selected GCC installation:
This is fixed in trunk r201784, which is not in clang 3.4.1. Since the fix is fairly simple, I will import this revision into FreeBSD.