📄 pr10392-1-test.patch
字号:
--- /dev/null Sat Dec 14 13:56:51 2002+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10392-1.c Sun Sep 14 14:28:24 2003@@ -0,0 +1,62 @@+/* PR optimization/10392+ * Reporter: marcus@mc.pp.se+ * Summary: [3.3/3.4 regression] [SH] optimizer generates faulty array indexing+ * Description:+ * The address calculation of an index operation on an array on the stack + * can _under some conditions_ get messed up completely+ *+ * Testcase tweaked by dank@kegel.com+ * Problem only happens with -O2 -m4, so it should only happen on sh4,+ * but what the heck, let's test other architectures, too.+ * Not marked as xfail since it's a regression.+*/+/* { dg-do run } */+/* { dg-options "-O2" } */+/* { dg-options "-O2 -m4" { target sh4-*-* } } */+const char *dont_optimize_function_away;++const char *use(const char *str)+{+ dont_optimize_function_away = str;+ if (str[0] != 'v')+ abort();+ if (str[1] < '1' || str[1] > '6')+ abort();+ if (str[2])+ abort();+ return str[2] ? "notused" : "v6";+}++const char *func(char *a, char *b)+{+ char buf[128];+ unsigned char i;+ const char *result;++ char *item[] = {+ "v1",+ "v2",+ };++ buf[0] = 'v';+ buf[1] = '3';+ buf[2] = 0;++ for (i = 0; i < 2; i++) {+ /* bug is: following line passes wild pointer to use() on sh4 -O2 */+ result = use(item[i]);++ use(buf);+ use(a);+ use(b);+ result = use(result);+ }+ return result;+}++int main()+{+ func("v4", "v5");+ return 0;+}+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -