Commit 990ece87 by Jason Merrill

update

From-SVN: r23685
parent 0ecfe0b4
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
void athrow(const ANY & e) throw(ANY) void athrow(const ANY & e) throw(ANY)
{ {
throw e; // gets bogus error - discarding const - XFAIL *-*-* throw e; // gets bogus error - discarding const
} }
int main(void) int main(void)
......
// Build don't link: // Build don't link:
// Special g++ Options: // Special g++ Options:
int *foo = new int[1](0); // gets bogus error - XFAIL *-*-* int *foo = new int[1](0); // gets bogus error -
...@@ -19,7 +19,7 @@ main() ...@@ -19,7 +19,7 @@ main()
float f = 3; float f = 3;
int* b1 = new int[(int)f]; int* b1 = new int[(int)f];
int* b2 = new int[f]; int* b2 = new int[f]; // ERROR - new requires integral size
return s; return s;
} }
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
// Bug: g++ emits template instances when it shouldn't. // Bug: g++ emits template instances when it shouldn't.
// Special g++ Options: -g -fexternal-templates // Special g++ Options: -g -fexternal-templates
// We mark this XFAIL for the 'collect2: ld returned 1 exit status' message. // We mark this XFAIL because we can't test for expected linker errors.
// excess errors test - XFAIL *-*-* // If we get an XPASS for this testcase, that's a bug.
// (OK) excess errors test - XFAIL *-*-*
#pragma implementation "irrelevant_file" #pragma implementation "irrelevant_file"
#line 1 "template18.h" #line 1 "template18.h"
...@@ -13,5 +14,5 @@ template <class T> inline T min (T a, T b) { return a<b?a:b; } ...@@ -13,5 +14,5 @@ template <class T> inline T min (T a, T b) { return a<b?a:b; }
main() main()
{ {
min (1, 1); // ERROR - undefined min (1, 1); // should produce an undefined symbol error.
} }
...@@ -11,7 +11,7 @@ struct D : public B { ...@@ -11,7 +11,7 @@ struct D : public B {
void foo() { void foo() {
B x; B x;
dynamic_cast<D*>(&x); // gets bogus error - XFAIL *-*-* dynamic_cast<D*>(&x); // WARNING - will never succeed
B* p = &x; B* p = &x;
dynamic_cast<D*>(p); dynamic_cast<D*>(p);
} }
...@@ -24,17 +24,17 @@ struct X { ...@@ -24,17 +24,17 @@ struct X {
}; };
void b() { void b() {
goto bar; // ERROR - jump from here - XFAIL *-*-* goto bar; // ERROR - jump from here
X x; // ERROR - jump crosses initialization - XFAIL *-*-* X x; // ERROR - jump crosses initialization
bar: // ERROR - jump to here - XFAIL *-*-* bar: // ERROR - jump to here
; ;
} }
#include <vector> #include <vector>
void c() { void c() {
goto bar; // ERROR - jump from here - XFAIL *-*-* goto bar; // ERROR - jump from here
vector<int> x; // ERROR - jump crosses initialization - XFAIL *-*-* vector<int> x; // ERROR - jump crosses initialization
bar: // ERROR - jump to here - XFAIL *-*-* bar: // ERROR - jump to here
; ;
} }
// test of rtti of single inheritance and multiple inheritance with // test of rtti of single inheritance and multiple inheritance with
// virtual inheritance // virtual inheritance
// dynamic casting // dynamic casting
// Special g++ Options: -frtti -w // Special g++ Options: -w
#include <typeinfo> #include <typeinfo>
...@@ -95,11 +95,12 @@ int main () ...@@ -95,11 +95,12 @@ int main ()
vp = dynamic_cast<D *> (dp); vp = dynamic_cast<D *> (dp);
if (vp != (void *)dp) error(21); if (vp != (void *)dp) error(21);
vp = dynamic_cast<B *> (dp); // Ill-formed: dynamic_cast to private or ambiguous base
if (vp == (void *)dp) error(21); // vp = dynamic_cast<B *> (dp);
// if (vp == (void *)dp) error(21);
vp = dynamic_cast<B *> (fp); // vp = dynamic_cast<B *> (fp);
if (vp == (void *)bbp) error(22); // if (vp == (void *)bbp) error(22);
vp = dynamic_cast<void *> (aap); vp = dynamic_cast<void *> (aap);
if (vp != (void *)fp) error(23); if (vp != (void *)fp) error(23);
...@@ -108,4 +109,3 @@ int main () ...@@ -108,4 +109,3 @@ int main ()
if (vp == (void *)bbp) error(24); if (vp == (void *)bbp) error(24);
} }
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