diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2010-08-02 19:26:40 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2010-08-02 19:26:40 +0200 |
commit | fea8c257250f4535a05716673597577fe3a7a605 (patch) | |
tree | 0af91fa212ed59bfb793c37b66599d038488fb07 /gcc | |
parent | 071bdb5f22d6f180a0acf906e2e1e392c47a0394 (diff) | |
download | gcc-fea8c257250f4535a05716673597577fe3a7a605.zip gcc-fea8c257250f4535a05716673597577fe3a7a605.tar.gz gcc-fea8c257250f4535a05716673597577fe3a7a605.tar.bz2 |
alpha.c (alpha_build_builtin_va_list): Mark __offset as volatile.
target/41089
* config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
as volatile.
From-SVN: r162826
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ad2b271..c37e93d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-08-02 Uros Bizjak <ubizjak@gmail.com> + + PR target/41089 + * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset + as volatile. + 2010-08-02 Sebastian Pop <sebastian.pop@amd.com> * common.opt (ftree-loop-distribute-patterns): New. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 35d66b6..1cfca58 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -5950,6 +5950,10 @@ alpha_build_builtin_va_list (void) integer_type_node); DECL_FIELD_CONTEXT (ofs) = record; DECL_CHAIN (ofs) = space; + /* ??? This is a hack, __offset is marked volatile to prevent + DCE that confuses stdarg optimization and results in + gcc.c-torture/execute/stdarg-1.c failure. See PR 41089. */ + TREE_THIS_VOLATILE (ofs) = 1; base = build_decl (BUILTINS_LOCATION, FIELD_DECL, get_identifier ("__base"), |