------- Comment #1 from rguenth at gcc dot gnu dot org 2007-05-30 10:09 ------- It looks like the following will fix it
Index: gimplify.c =================================================================== --- gimplify.c (revision 125161) +++ gimplify.c (working copy) @@ -5308,7 +5308,7 @@ gimplify_omp_atomic_pipeline (tree *expr floating point. This allows the atomic operation to properly succeed even with NaNs and -0.0. */ x = build3 (COND_EXPR, void_type_node, - build2 (NE_EXPR, boolean_type_node, oldival, oldival2), + build2 (NE_EXPR, boolean_type_node, fold_convert (itype, oldival), oldival2), build1 (GOTO_EXPR, void_type_node, label), NULL); gimplify_and_add (x, pre_p); but this routine is a twisted maze ;) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32152