This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/77933] Stack corruption on ARM when using high registers and __builtin_return_address
- From: "thopre01 at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 09 Dec 2016 15:26:48 +0000
- Subject: [Bug target/77933] Stack corruption on ARM when using high registers and __builtin_return_address
- Auto-submitted: auto-generated
- References: <bug-77933-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77933
--- Comment #7 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> ---
Author: thopre01
Date: Fri Dec 9 15:26:17 2016
New Revision: 243490
URL: https://gcc.gnu.org/viewcvs?rev=243490&root=gcc&view=rev
Log:
2016-12-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
Backport from mainline
2016-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR target/77933
* config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
being live in the function and lr needing to be saved. Distinguish
between already saved pushable registers and registers to push.
Check for LR being an available pushable register.
gcc/testsuite/
PR target/77933
* gcc.target/arm/pr77933-1.c: New test.
* gcc.target/arm/pr77933-2.c: Likewise.
Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/arm/pr77933-1.c
branches/gcc-6-branch/gcc/testsuite/gcc.target/arm/pr77933-2.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/arm/arm.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog