Commit 1ab83276 by Jason Merrill

update

From-SVN: r32213
parent aa52c1ff
// 981203 bkoz // 981203 bkoz
// g++/14687 // g++/14687
// excess errors test - XFAIL *-*-*
#include <assert.h> #include <assert.h>
unsigned int gtest; unsigned int gtest;
......
...@@ -19,8 +19,8 @@ class C : public A, public B {}; ...@@ -19,8 +19,8 @@ class C : public A, public B {};
void foo() { void foo() {
// straight call // straight call
C x; C x;
x.A::ii = 5; x.A::ii = 5; // ERROR - L is ambiguous base
x.A::foo(x.A::ii); x.A::foo(x.A::ii); // ERROR - L is ambiguous base
// 5.1 Primary expressions // 5.1 Primary expressions
// p 8 // p 8
......
// Build don't link: // Build don't link:
// GROUPS passed miscellaneous-bugs // GROUPS passed miscellaneous-bugs
// we shouldn't get any warnings or errors for this code
struct A { struct A {
int aa; int aa;
}; };
...@@ -9,5 +9,5 @@ struct B : public A { ...@@ -9,5 +9,5 @@ struct B : public A {
struct C : public A { struct C : public A {
}; };
struct D : public C, public B { struct D : public C, public B {
void fun() { C::aa = 10; } void fun() { C::aa = 10; } // ERROR - conversion to A is ambiguous
}; };
// GROUPS passed templates // GROUPS passed templates
// Bug: g++ emits template instances when it shouldn't. // Bug: g++ emits template instances when it shouldn't.
// Special g++ Options: -g -Wno-deprecated -fexternal-templates // Special g++ Options: -g -O0 -Wno-deprecated -fexternal-templates
// We mark this XFAIL because we can't test for expected linker errors. // We mark this XFAIL because we can't test for expected linker errors.
// If we get an XPASS for this testcase, that's a bug. // If we get an XPASS for this testcase, that's a bug.
......
...@@ -13,6 +13,6 @@ class X { ...@@ -13,6 +13,6 @@ class X {
class Y : private X { class Y : private X {
public: public:
void f(int);// ERROR - because.* void f(int);
X::f; // g++ 2.5.5 doesn't flag this misuse X::f; // used to be an error; now equivalent to 'using X::f'
};// ERROR - cannot adjust.* };
// Test that referring to an ambiguous base in name lookup does not
// interfere with accessing the field, which is not ambiguous.
// Build don't link:
struct A {
int i;
};
struct B: virtual A { };
struct C: public B { };
struct D: public B { };
struct E: public C, public D {
void f ();
};
void E::f() {
B::i = 0;
}
void f () {
E e;
e.B::i = 0;
}
...@@ -5,6 +5,6 @@ struct X{ ...@@ -5,6 +5,6 @@ struct X{
struct Y:X{ struct Y:X{
void f(int); void f(int);
void f(); // ERROR - conflict void f();
using X::f; using X::f;
}; // ERROR - };
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Based on a testcase by Martin Bachtold <martinb@coyotesystems.com> // Based on a testcase by Martin Bachtold <martinb@coyotesystems.com>
// excess errors test - XFAIL *-*-*
struct foo { struct foo {
void m(); void m();
}; };
......
// Test of class-scope using-declaration for functions.
#define assert(COND) if (!(COND)) return 1
struct A {
int f(int) { return 1; }
int f(char) { return 2; }
};
struct B {
int f(double) { return 3; }
};
struct C : public A, public B {
using A::f;
using B::f;
int f(char) { return 4; }
int f(C) { return 5; }
};
int main ()
{
C c;
assert (c.f(1) == 1);
assert (c.f('a') == 4);
assert (c.f(2.0) == 3);
assert (c.f(c) == 5);
}
// Build don't link: // Build don't link:
// crash test - XFAIL *-*-*
// by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc. // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
// Copyright (C) 1999 Free Software Foundation // Copyright (C) 1999 Free Software Foundation
...@@ -11,7 +10,7 @@ class Q { ...@@ -11,7 +10,7 @@ class Q {
}; };
template<template<class> class XX> template<template<class> class XX>
class Y { class Y {
XX<int> x_; XX<int> x_; // ERROR - Q::X not a template
}; };
Y<Q::X> y; Y<Q::X> y; // ERROR - instantiated from here
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