http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52397
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-27 12:57:21 UTC --- We should already have code that should handle it, the question is where we have a bug in it. Anyway, can't reproduce with a cross: ./gnat1 -O2 -g uintp.adb -I ../../gcc/ada/ -fcompare-debug= --param min-nondebug-insn-uid=10000 -o uintp.s1 -fdump-final-insns=/tmp/1 ./gnat1 -O2 -g uintp.adb -I ../../gcc/ada/ -fcompare-debug=-gtoggle -gtoggle --param min-nondebug-insn-uid=10000 -o uintp.s2 -fdump-final-insns=/tmp/2 yield the same dumps. What options are you using?