comparison gcc/testsuite/g++.old-deja/g++.mike/p811.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
510 510
511 class Y { 511 class Y {
512 public: 512 public:
513 Y() {} 513 Y() {}
514 virtual const char *stringify() = 0; 514 virtual const char *stringify() = 0;
515 virtual char *stringify2() const = 0; // { dg-error "overriding" } 515 virtual char *stringify2() const = 0; // { dg-message "overridden" }
516 }; 516 };
517 517
518 class X: public Y { // { dg-message "defined here" } 518 class X: public Y { // { dg-message "defined here" }
519 public: 519 public:
520 X(): Y() {} 520 X(): Y() {}
533 X::stringify2() // { dg-error "no declaration matches" } 533 X::stringify2() // { dg-error "no declaration matches" }
534 { 534 {
535 return "stringify2"; 535 return "stringify2";
536 } 536 }
537 537
538 int
538 main() 539 main()
539 { 540 {
540 X x; 541 X x;
541 Y& y = x; 542 Y& y = x;
542 543
545 cout << x.stringify2() << '\n'; 546 cout << x.stringify2() << '\n';
546 547
547 cout << "y\n"; 548 cout << "y\n";
548 cout << y.stringify() << '\n'; 549 cout << y.stringify() << '\n';
549 cout << y.stringify2() << '\n'; 550 cout << y.stringify2() << '\n';
551
552 return 0;
550 } 553 }