summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-02 17:26:40 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-02 17:26:40 +0000
commitf439e54374b0f977641470856962727262fc7a0a (patch)
tree0af91fa212ed59bfb793c37b66599d038488fb07 /gcc
parentcca7236e5fabb3791d494683d1f53f3c09d545e5 (diff)
downloadgcc-f439e54374b0f977641470856962727262fc7a0a.tar.gz
target/41089
* config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset as volatile. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162826 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/alpha/alpha.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad2b271a5bb..c37e93d3e13 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 35d66b64a0a..1cfca586a87 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"),