aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/alpha
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2010-08-02 19:26:40 +0200
committerUros Bizjak <uros@gcc.gnu.org>2010-08-02 19:26:40 +0200
commitfea8c257250f4535a05716673597577fe3a7a605 (patch)
tree0af91fa212ed59bfb793c37b66599d038488fb07 /gcc/config/alpha
parent071bdb5f22d6f180a0acf906e2e1e392c47a0394 (diff)
downloadgcc-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/config/alpha')
-rw-r--r--gcc/config/alpha/alpha.c4
1 files changed, 4 insertions, 0 deletions
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"),