⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pr11736-1-test.patch

📁 linux下编译交叉工具链的工具源码
💻 PATCH
字号:
--- /dev/null	Sat Dec 14 13:56:51 2002+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c	Sun Sep 14 14:26:33 2003@@ -0,0 +1,45 @@+/* PR optimization/11736+ * Reporter: marcus@mc.pp.se+ * Summary:  Stackpointer messed up on SuperH+ * Keywords: wrong-code+ * Description:+ * When a function with 5 arguments is called in both branches of a+ * conditional, and only the last argument differs, the code to push that+ * last argument on the stack gets confused. + * Space for the fifth argument is reserved on the stack by the+ * instruction I have marked as "A".  However, if the else-branch is+ * taken the stackpointer is decremented _again_ at "B".  This+ * decrementation is never restored, and it is only due to the+ * restoration of r15 from r14 that the function works at all.  With+ * -fomit-frame-pointer it will crash.+ *+ * Testcase tweaked by dank@kegel.com+ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97 + * and dodes gcc-3.0.2+ */++/* { dg-do run } */+/* { dg-options "-O1 -fomit-frame-pointer" } */++int expected_e;++void bar(int a, int b, int c, int d, int e)+{+	if (e != expected_e)+		abort();+}++void foo(int a)+{+	if (a)+		bar(0, 0, 0, 0, 1);+	else+		bar(0, 0, 0, 0, 0);	/* stack pointer decremented extra time here, causing segfault */+}++int main(int argc, char **argv)+{+	for (expected_e = 0; expected_e < 2; expected_e++)+		foo(expected_e);+	return 0;+}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -