From: Uros Bizjak Date: Mon, 2 Aug 2010 17:26:40 +0000 (+0200) Subject: alpha.c (alpha_build_builtin_va_list): Mark __offset as volatile. X-Git-Tag: releases/gcc-4.6.0~5283 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fea8c257250f4535a05716673597577fe3a7a605;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ad2b271a5bb4..c37e93d3e13d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-08-02 Uros Bizjak + + PR target/41089 + * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset + as volatile. + 2010-08-02 Sebastian Pop * common.opt (ftree-loop-distribute-patterns): New. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 35d66b64a0a9..1cfca586a87f 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"),