Commit 8ef834ca by Richard Guenther Committed by Richard Biener

tree-vn.c (vn_add): Handle TRUTH_*_EXPR.

2008-06-25  Richard Guenther  <rguenther@suse.de>

	* tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
	(vn_lookup): Likewise.

	* g++.dg/torture/20080625-1.C: New testcase.

From-SVN: r137102
parent ee1f1270
2008-06-25 Richard Guenther <rguenther@suse.de> 2008-06-25 Richard Guenther <rguenther@suse.de>
* tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
(vn_lookup): Likewise.
2008-06-25 Richard Guenther <rguenther@suse.de>
PR tree-optimization/35518 PR tree-optimization/35518
* fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs. * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
* tree-sra.c (instantiate_element): Use fold_build3 to build * tree-sra.c (instantiate_element): Use fold_build3 to build
......
2008-06-25 Richard Guenther <rguenther@suse.de>
* g++.dg/torture/20080625-1.C: New testcase.
2008-06-24 Paul Thomas <pault@gcc.gnu.org> 2008-06-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/36371 PR fortran/36371
......
extern "C" {
typedef unsigned char sal_Bool;
typedef struct _rtl_uString {
} rtl_uString;
void rtl_uString_release( rtl_uString * str ) throw ();
}
class OUString {
rtl_uString * pData;
public:
OUString() {}
~OUString() {
rtl_uString_release( pData );
}
sal_Bool equalsIgnoreAsciiCase( const OUString & str ) const;
};
bool findAndRemove();
long getAttributeProps()
{
long nAttrs = 0;
OUString aValue;
if (findAndRemove()
&& aValue.equalsIgnoreAsciiCase(OUString()))
;
else
nAttrs |= 1;
return nAttrs;
}
...@@ -196,12 +196,19 @@ vn_add (tree expr, tree val) ...@@ -196,12 +196,19 @@ vn_add (tree expr, tree val)
SSA_NAME_VALUE (expr) = val; SSA_NAME_VALUE (expr) = val;
break; break;
} }
else if (TREE_CODE (expr) == ADDR_EXPR) switch (TREE_CODE (expr))
{ {
case ADDR_EXPR:
case TRUTH_AND_EXPR:
case TRUTH_OR_EXPR:
case TRUTH_XOR_EXPR:
case TRUTH_NOT_EXPR:
vn_nary_op_insert (expr, val); vn_nary_op_insert (expr, val);
break; break;
default:
gcc_unreachable ();
} }
/* FALLTHROUGH */ break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -263,9 +270,18 @@ vn_lookup (tree expr) ...@@ -263,9 +270,18 @@ vn_lookup (tree expr)
return vn_reference_lookup (expr, NULL, false); return vn_reference_lookup (expr, NULL, false);
else if (TREE_CODE (expr) == SSA_NAME) else if (TREE_CODE (expr) == SSA_NAME)
return SSA_NAME_VALUE (expr); return SSA_NAME_VALUE (expr);
else if (TREE_CODE (expr) == ADDR_EXPR) switch (TREE_CODE (expr))
{
case ADDR_EXPR:
case TRUTH_AND_EXPR:
case TRUTH_OR_EXPR:
case TRUTH_XOR_EXPR:
case TRUTH_NOT_EXPR:
return vn_nary_op_lookup (expr); return vn_nary_op_lookup (expr);
/* FALLTHROUGH */ default:
gcc_unreachable ();
}
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment