OSDN Git Service

* opts.c (decode_options): If optimize is bigger than 255,
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 27 Nov 2009 11:31:55 +0000 (11:31 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 27 Nov 2009 11:31:55 +0000 (11:31 +0000)
set it to 255.

* gcc.dg/O16384.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154699 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/opts.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/O16384.c [new file with mode: 0644]

index e3c27aa..1519f27 100644 (file)
@@ -1,3 +1,8 @@
+2009-11-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * opts.c (decode_options): If optimize is bigger than 255,
+       set it to 255.
+
 2009-11-26  Richard Henderson  <rth@redhat.com>
 
        * config/i386/sse.md (mulv16qi3): Change back from an expander
index 3a825ce..7660bd8 100644 (file)
@@ -829,6 +829,8 @@ decode_options (unsigned int argc, const char **argv)
              if (optimize_val != -1)
                {
                  optimize = optimize_val;
+                 if ((unsigned int) optimize > 255)
+                   optimize = 255;
                  optimize_size = 0;
                }
            }
index cd4c631..e1c93e0 100644 (file)
@@ -1,3 +1,7 @@
+2009-11-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.dg/O16384.c: New test.
+
 2009-11-27  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/35112
diff --git a/gcc/testsuite/gcc.dg/O16384.c b/gcc/testsuite/gcc.dg/O16384.c
new file mode 100644 (file)
index 0000000..32e17d4
--- /dev/null
@@ -0,0 +1,15 @@
+/* Test insane -O argument.  */
+/* { dg-do compile } */
+/* { dg-options "-O16384" } */
+
+__attribute__((__optimize__(16396), __noinline__)) void
+foo (void)
+{
+}
+
+int
+main (void)
+{
+  foo ();
+  return 0;
+}