aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@gcc.gnu.org>2010-06-01 10:05:17 -0400
committerDiego Novillo <dnovillo@gcc.gnu.org>2010-06-01 10:05:17 -0400
commit7bab65434ce0e49eeccc381dce41fe7cf348899e (patch)
treeab15a982d4a269f4bc6ceb4a128188ffa1ec7bfc /gcc
parent41361b9fe57248555eab99ffe74a7943c147103b (diff)
downloadgcc-7bab65434ce0e49eeccc381dce41fe7cf348899e.zip
gcc-7bab65434ce0e49eeccc381dce41fe7cf348899e.tar.gz
gcc-7bab65434ce0e49eeccc381dce41fe7cf348899e.tar.bz2
richi's fixes for c++ bootstrap
From-SVN: r160105
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/cvt.c28
-rw-r--r--gcc/simplify-rtx.c6
2 files changed, 19 insertions, 15 deletions
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index 646610a..2654ccd 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -822,22 +822,26 @@ ocp_convert (tree type, tree expr, int convtype, int flags)
tree
convert_to_void (tree expr, const char *implicit, tsubst_flags_t complain)
{
- tree exprv;
-
if (expr == error_mark_node
|| TREE_TYPE (expr) == error_mark_node)
return error_mark_node;
- exprv = expr;
- while (TREE_CODE (exprv) == COMPOUND_EXPR)
- exprv = TREE_OPERAND (exprv, 1);
- if (DECL_P (exprv) || handled_component_p (exprv))
- /* Expr is not being 'used' here, otherwise we whould have
- called mark_{rl}value_use use here, which would have in turn
- called mark_exp_read. Rather, we call mark_exp_read directly
- to avoid some warnings when
- -Wunused-but-set-{variable,parameter} is in effect. */
- mark_exp_read (exprv);
+ if (implicit == NULL)
+ mark_rvalue_use (expr);
+ else
+ {
+ tree exprv = expr;
+
+ while (TREE_CODE (exprv) == COMPOUND_EXPR)
+ exprv = TREE_OPERAND (exprv, 1);
+ if (DECL_P (exprv) || handled_component_p (exprv))
+ /* Expr is not being 'used' here, otherwise we whould have
+ called mark_{rl}value_use use here, which would have in turn
+ called mark_exp_read. Rather, we call mark_exp_read directly
+ to avoid some warnings when
+ -Wunused-but-set-{variable,parameter} is in effect. */
+ mark_exp_read (exprv);
+ }
if (!TREE_TYPE (expr))
return expr;
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index b38ab2e..c085952 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -4875,7 +4875,7 @@ simplify_immed_subreg (enum machine_mode outermode, rtx op,
a mistake.) */
{
unsigned byte = (elem * elem_bitsize) / BITS_PER_UNIT;
- unsigned ibyte = (((num_elem - 1 - elem) * elem_bitsize)
+ unsigned ibyte ATTRIBUTE_UNUSED = (((num_elem - 1 - elem) * elem_bitsize)
/ BITS_PER_UNIT);
unsigned word_byte = WORDS_BIG_ENDIAN ? ibyte : byte;
unsigned subword_byte = BYTES_BIG_ENDIAN ? ibyte : byte;
@@ -4979,7 +4979,7 @@ simplify_immed_subreg (enum machine_mode outermode, rtx op,
will already have offset 0. */
if (GET_MODE_SIZE (innermode) >= GET_MODE_SIZE (outermode))
{
- unsigned ibyte = (GET_MODE_SIZE (innermode) - GET_MODE_SIZE (outermode)
+ unsigned ibyte ATTRIBUTE_UNUSED = (GET_MODE_SIZE (innermode) - GET_MODE_SIZE (outermode)
- byte);
unsigned word_byte = WORDS_BIG_ENDIAN ? ibyte : byte;
unsigned subword_byte = BYTES_BIG_ENDIAN ? ibyte : byte;
@@ -5024,7 +5024,7 @@ simplify_immed_subreg (enum machine_mode outermode, rtx op,
a mistake.) */
{
unsigned byte = (elem * elem_bitsize) / BITS_PER_UNIT;
- unsigned ibyte = (((num_elem - 1 - elem) * elem_bitsize)
+ unsigned ibyte ATTRIBUTE_UNUSED = (((num_elem - 1 - elem) * elem_bitsize)
/ BITS_PER_UNIT);
unsigned word_byte = WORDS_BIG_ENDIAN ? ibyte : byte;
unsigned subword_byte = BYTES_BIG_ENDIAN ? ibyte : byte;