summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/opt/fold1.C
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-07 18:57:35 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-07 18:57:35 +0000
commitb30e3dbcd30d489ce6b4b64ffddef6692f9c4d75 (patch)
treea332f087a54481cb0bc35e12d08f3362b5f43f69 /gcc/testsuite/g++.dg/opt/fold1.C
parentf82dbd66e40abc0c96911811bd2b689b332410a8 (diff)
downloadgcc-b30e3dbcd30d489ce6b4b64ffddef6692f9c4d75.tar.gz
PR middle-end/13696
* fold-const.c (fold_convert): New function to provide type conversion to the middle-end without using convert. (negate_expr, associate_trees, size_diffop, omit_one_operand, operand_equal_for_comparison_p, pedantic_omit_one_operand, invert_truthvalue, optimize_bit_field_compare, range_binop, decode_field_reference, make_range, build_range_check, unextend, fold_truthop, extract_muldiv_1, fold_mathfn_compare, fold_binary_op_with_conditional_arg, fold_inf_compare, fold_single_bit_test, fold, multiple_of_p): Replace all calls to convert with calls to fold_convert. * g++.dg/opt/fold1.C: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77464 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg/opt/fold1.C')
-rw-r--r--gcc/testsuite/g++.dg/opt/fold1.C17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/fold1.C b/gcc/testsuite/g++.dg/opt/fold1.C
new file mode 100644
index 00000000000..98f1b519115
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/fold1.C
@@ -0,0 +1,17 @@
+// PR middle-end/13696
+// { dg-do compile }
+// { dg-options "-O2" }
+
+extern void x(unsigned long*);
+
+enum e { red, blue, green };
+
+struct s {
+ unsigned long l;
+};
+struct s map[1][256];
+
+void
+f(int i,e j) {
+ x(&(map[i][j].l));
+}