64 lines
1.4 KiB
C
64 lines
1.4 KiB
C
// { dg-do assemble }
|
|
|
|
// Copyright (C) 2000 Free Software Foundation, Inc.
|
|
// Contributed by Nathan Sidwell 3 Jan 2000 <nathan@acm.org>
|
|
|
|
// Derived from a bug report by Ulrich Drepper <drepper@cygnus.com>
|
|
|
|
struct A {operator char * () { return 0;} };
|
|
struct B {operator char * () const { return 0;} };
|
|
struct C {operator char const * () { return 0;} };
|
|
struct D {operator char const * () const { return 0;} };
|
|
|
|
void f0 ()
|
|
{
|
|
A a = A ();
|
|
B b = B ();
|
|
C c = C ();
|
|
D d = D ();
|
|
|
|
static_cast <char *> (a);
|
|
static_cast <char *> (b);
|
|
static_cast <char *> (c); // { dg-error "" } static cast
|
|
static_cast <char *> (d); // { dg-error "" } static cast
|
|
}
|
|
|
|
void f1 ()
|
|
{
|
|
A a = A ();
|
|
B b = B ();
|
|
C c = C ();
|
|
D d = D ();
|
|
|
|
static_cast <const char *> (a);
|
|
static_cast <const char *> (b);
|
|
static_cast <const char *> (c);
|
|
static_cast <const char *> (d);
|
|
}
|
|
|
|
void f2 ()
|
|
{
|
|
A const a = A ();
|
|
B const b = B ();
|
|
C const c = C ();
|
|
D const d = D ();
|
|
|
|
static_cast <char *> (a); // { dg-error "" } static cast
|
|
static_cast <char *> (b);
|
|
static_cast <char *> (c); // { dg-error "" } static cast
|
|
static_cast <char *> (d); // { dg-error "" } static cast
|
|
}
|
|
|
|
void f3 ()
|
|
{
|
|
A const a = A ();
|
|
B const b = B ();
|
|
C const c = C ();
|
|
D const d = D ();
|
|
|
|
static_cast <const char *> (a); // { dg-error "" } static cast
|
|
static_cast <const char *> (b);
|
|
static_cast <const char *> (c); // { dg-error "" } static cast
|
|
static_cast <const char *> (d);
|
|
}
|