new
From-SVN: r28305
This commit is contained in:
parent
3927874dcd
commit
adec3b83de
2 changed files with 67 additions and 0 deletions
29
gcc/testsuite/g++.old-deja/g++.other/lineno3.C
Normal file
29
gcc/testsuite/g++.old-deja/g++.other/lineno3.C
Normal file
|
@ -0,0 +1,29 @@
|
|||
// Bug: g++ gets confused by the #line directive within a method.
|
||||
// Contributed by Mark Mitchell <mark@codesourcery.com>
|
||||
// Build don't link:
|
||||
|
||||
struct S
|
||||
{
|
||||
void f ()
|
||||
{
|
||||
int i;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int j;
|
||||
}
|
||||
};
|
38
gcc/testsuite/g++.old-deja/g++.other/pmf4.C
Normal file
38
gcc/testsuite/g++.old-deja/g++.other/pmf4.C
Normal file
|
@ -0,0 +1,38 @@
|
|||
// Bug: g++ doesn't compensate for finding a virtual function in a
|
||||
// non-primary vtable when generating PMFs.
|
||||
// Submitted by Jason Merrill <jason@cygnus.com>
|
||||
|
||||
struct A {
|
||||
virtual ~A() {}
|
||||
};
|
||||
|
||||
struct B {
|
||||
virtual void f () = 0;
|
||||
};
|
||||
|
||||
struct C : public A, public B {
|
||||
void f ();
|
||||
};
|
||||
|
||||
void (C::* B_f)() = &B::f; // this works
|
||||
void (C::* C_f)() = &C::f; // this breaks
|
||||
|
||||
C* p;
|
||||
|
||||
void C::f ()
|
||||
{
|
||||
p = this;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
C c;
|
||||
|
||||
(c.*B_f)();
|
||||
if (p != &c)
|
||||
return 1;
|
||||
|
||||
(c.*C_f)();
|
||||
if (p != &c)
|
||||
return 1;
|
||||
}
|
Loading…
Add table
Reference in a new issue