aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.law/operators1.C
blob: fa4c10cf3b92552a774aa1a7fca7b69a55ffb1e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// GROUPS passed operators
// opr-conv file
// Message-Id: <199301040217.AA04377@cypress.ucsc.edu>
// From: "Dean R. E. Long" <dlong@cse.ucsc.edu>
// Subject: conversion operator bug?
// Date: Sun, 3 Jan 1993 18:17:20 -0800

#include <stdio.h>
class B {};

class A {
    B *p;
public:
    A() { p = 0; }
    operator B * () { return p; }
    operator B & () { return *p; }
};

main()
{
    A a;
    B &b = (B &)a;
    B *bp = (B *)a;
    B &br = a.operator B&();
// What's the right test?
    printf ("FAIL\n");
}