This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH v5, middle end]: Committed: Fix PR 37908, thinko with atomic NAND operation
H.J. Lu wrote:
2008-11-17 Uros Bizjak <firstname.lastname@example.org>
* optabs.c (expand_sync_operation): Properly handle NAND case
by calculating ~(t1 & val) instead of (~t1 & val).
* builtins.c (expand_builtin_sync_operation): Warn for changed
semantics in NAND builtins.
* c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
* doc/invoke.texi (Warning options): Add Wsync-nand.
* doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
__sync_fetch_and_nand builtin operation in the example. Add a note
about changed semantics in GCC 4.4.
[__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
operation in the example. Add a note about changed semantics in
Those are failed on Linux/ia64:
+FAIL: gcc.dg/ia64-sync-1.c execution test
+FAIL: gcc.dg/ia64-sync-2.c execution test
+FAIL: gcc.dg/pr37908.c execution test
+FAIL: gcc.dg/sync-2.c execution test
+FAIL: gcc.dg/sync-3.c execution test
Yes, these target-dependant failures are expected. Insn patterns /
expanders have to be updated.