On Fri, Nov 22, 2013 at 02:55:52PM +0100, Jakub Jelinek wrote:
> On Fri, Nov 22, 2013 at 10:54:16AM +0100, Marek Polacek wrote:
> > 1) currently, we seem to miscompile some code with -Os.  That's why
> >    I skipped -Os in some of the test.
> 
> The following (untested) incremental fix should hopefully fix it.
> 
> Perhaps the calls before expand_normal aren't needed, dunno if we can end up
> with any pending stack adjustments in between gimple stmts.
> But the ones after expand_normal (fn); certainly are needed, if we the
> calls change sp, we need to return back to the previous state of sp
> before the CODE_LABEL that can be jumped to to bypass the call.

...and the following makes the tests run with -Os again.

2013-11-22  Marek Polacek  <pola...@redhat.com>

testsuite/
        * c-c++-common/ubsan/overflow-sub-1.c: Run the test even with -Os.
        * c-c++-common/ubsan/overflow-mul-1.c: Likewise.
        * c-c++-common/ubsan/overflow-add-1.c: Likewise.

--- gcc/testsuite/c-c++-common/ubsan/overflow-sub-1.c.mp2       2013-11-22 
15:14:23.350971273 +0100
+++ gcc/testsuite/c-c++-common/ubsan/overflow-sub-1.c   2013-11-22 
15:15:43.490276963 +0100
@@ -1,9 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
 /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */
-/* { dg-skip-if "" { *-*-* }  { "-Os" } { "" } } */
-
-// TODO: This is miscompiled with -Os!
 
 #define SCHAR_MAX __SCHAR_MAX__
 #define SCHAR_MIN (-__SCHAR_MAX__ - 1)
--- gcc/testsuite/c-c++-common/ubsan/overflow-mul-1.c.mp2       2013-11-22 
15:14:05.007904024 +0100
+++ gcc/testsuite/c-c++-common/ubsan/overflow-mul-1.c   2013-11-22 
15:15:22.932196728 +0100
@@ -1,9 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
 /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */
-/* { dg-skip-if "" { *-*-* }  { "-Os" } { "" } } */
-
-// TODO: This is miscompiled with -Os!
 
 #define SCHAR_MAX __SCHAR_MAX__
 #define SHRT_MAX __SHRT_MAX__
--- gcc/testsuite/c-c++-common/ubsan/overflow-add-1.c.mp2       2013-11-22 
15:13:50.506851027 +0100
+++ gcc/testsuite/c-c++-common/ubsan/overflow-add-1.c   2013-11-22 
15:14:53.409081665 +0100
@@ -1,9 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
 /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */
-/* { dg-skip-if "" { *-*-* }  { "-Os" } { "" } } */
-
-// TODO: This is miscompiled with -Os!
 
 #define SCHAR_MAX __SCHAR_MAX__
 #define SHRT_MAX __SHRT_MAX__

        Marek

Reply via email to