// { dg-do assemble }
|
// { dg-do assemble }
|
// GROUPS passed missed-error
|
// GROUPS passed missed-error
|
// missed-error file
|
// missed-error file
|
// From: ndc!don@csvax.cs.caltech.edu (Don Erway)
|
// From: ndc!don@csvax.cs.caltech.edu (Don Erway)
|
// Date: Thu, 21 May 92 15:40:45 PDT
|
// Date: Thu, 21 May 92 15:40:45 PDT
|
// Subject: More on [g++ 2.1 : overloaded function selection incorrect]
|
// Subject: More on [g++ 2.1 : overloaded function selection incorrect]
|
// Message-ID: <9205212240.AA17934@ndc.com>
|
// Message-ID: <9205212240.AA17934@ndc.com>
|
|
|
#include
|
#include
|
|
|
// The VxWorks kernel-mode headers define a macro named "max", which is not
|
// The VxWorks kernel-mode headers define a macro named "max", which is not
|
// ISO-compliant, but is part of the VxWorks API.
|
// ISO-compliant, but is part of the VxWorks API.
|
#if defined __vxworks && !defined __RTP__
|
#if defined __vxworks && !defined __RTP__
|
#undef max
|
#undef max
|
#endif
|
#endif
|
|
|
inline int max(int a, int b) {return a > b ? a : b;}; // { dg-message "candidate" }
|
inline int max(int a, int b) {return a > b ? a : b;}; // { dg-message "candidate" }
|
// { dg-error "extra ';'" "extra ;" { target *-*-* } 17 }
|
// { dg-error "extra ';'" "extra ;" { target *-*-* } 17 }
|
inline double max(double a, double b) {return a > b ? a : b;}; // { dg-message "note" } candidate
|
inline double max(double a, double b) {return a > b ? a : b;}; // { dg-message "note" } candidate
|
// { dg-error "extra ';'" "extra ;" { target *-*-* } 19 }
|
// { dg-error "extra ';'" "extra ;" { target *-*-* } 19 }
|
|
|
int main() {
|
int main() {
|
static void foo(int i, int j, double x, double y) ;// { dg-error "" } .*
|
static void foo(int i, int j, double x, double y) ;// { dg-error "" } .*
|
|
|
foo(4, -37, 14.39, 14.38);
|
foo(4, -37, 14.39, 14.38);
|
}
|
}
|
|
|
// 971006 we no longer give an error for this since we emit a hard error
|
// 971006 we no longer give an error for this since we emit a hard error
|
// about the declaration above
|
// about the declaration above
|
static void foo(int i, int j, double x, double y) {
|
static void foo(int i, int j, double x, double y) {
|
|
|
std::cout << "Max(int): " << max(i,j) << " Max(double): " <<
|
std::cout << "Max(int): " << max(i,j) << " Max(double): " <<
|
max(x,y) << '\n';
|
max(x,y) << '\n';
|
std::cout << "Max(int, double): " << max(i, y) << '\n';// { dg-error "" }
|
std::cout << "Max(int, double): " << max(i, y) << '\n';// { dg-error "" }
|
}
|
}
|
|
|
|
|