aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2004-10-21 21:23:42 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2004-10-21 21:23:42 +0000
commit08e17d9d1121f0ce5869ddf1283db2449a4bc458 (patch)
treef2b7fac0767818e1f51fd05dc1e3af743cc2df4b /gcc/testsuite
parent8265f931175625977cb6ad5191a2ae286f71002e (diff)
downloadgcc-08e17d9d1121f0ce5869ddf1283db2449a4bc458.zip
gcc-08e17d9d1121f0ce5869ddf1283db2449a4bc458.tar.gz
gcc-08e17d9d1121f0ce5869ddf1283db2449a4bc458.tar.bz2
re PR c++/18073 (mmintrin.h rejected by C++ frontend)
PR c++/18073 PR c++/10841 * cp-tree.h (convert_to_base): Change prototype. (build_ptrmemfunc): Likewise. (convert_ptrmem): New function. * call.c (struct conversion): Adjust documentation for base_p. (standard_conversion): Set base_p for ck_pmem conversions as appropriate. (convert_like_real): Use convert_to_base for ck_pmem and ck_ptr conversions. * class.c (convert_to_base): Handle both pointers and objects. Add nonnull parameter. (build_vfield_ref): Adjust call to convert_to_base. * cvt.c (cp_convert_to_pointer): Adjust call to build_ptrmemfunc. (convert_force): Likewise. * typeck.c (build_unary_op): Likewise. (convert_ptrmem): New function. (build_static_cast_1): Use it. (build_reinterpret_cast): Allow conversions to vector types. (get_delta_difference): Add c_cast_p parameter. (build_ptrmemfunc): Likewise. Adjust calls to get_delta_difference. PR c++/10841 * g++.dg/conversion/cast1.C: New test. * g++.dg/overload/pmf1.C: Adjust error marker. From-SVN: r89403
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/conversion/cast1.C22
-rw-r--r--gcc/testsuite/g++.dg/overload/pmf1.C2
3 files changed, 29 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b7f25dd..ae62312 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-21 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10841
+ * g++.dg/conversion/cast1.C: New test.
+ * g++.dg/overload/pmf1.C: Adjust error marker.
+
2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/17923
diff --git a/gcc/testsuite/g++.dg/conversion/cast1.C b/gcc/testsuite/g++.dg/conversion/cast1.C
new file mode 100644
index 0000000..f90b421
--- /dev/null
+++ b/gcc/testsuite/g++.dg/conversion/cast1.C
@@ -0,0 +1,22 @@
+// PR c++/10841
+
+int main() {
+ class Base {
+ public:
+ int i, j, k;
+ void f(); };
+
+ class Derived : private Base {
+ public:
+ int m, n, p;
+ void g();
+ };
+
+ Derived derived;
+ Base &base = (Base &)derived;
+ (int Base::*)&Derived::n;
+ (int Derived::*)&Base::j;
+ (void (Base::*)(void))&Derived::g;
+ (void (Derived::*)(void))&Base::f;
+}
+
diff --git a/gcc/testsuite/g++.dg/overload/pmf1.C b/gcc/testsuite/g++.dg/overload/pmf1.C
index b97f64e..d200749 100644
--- a/gcc/testsuite/g++.dg/overload/pmf1.C
+++ b/gcc/testsuite/g++.dg/overload/pmf1.C
@@ -17,5 +17,5 @@ void f (C) {} // even though this would be well-formed
int main ()
{
- f (aip); // { dg-error "'A' is an inaccessible base of 'B'" "" }
+ f (aip); // { dg-error "'A' is an inaccessible base of 'B'|conversion" "" }
}