This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/77933] Stack corruption on ARM when using high registers and __builtin_return_address


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]