summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.law/arg9.C
blob: ee352fabfcec7e58b89183441d29aa4c5b922909 (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
28
29
30
31
32
33
34
35
36
37
38
39
// { dg-do assemble  }
// GROUPS passed arg-matching
// arg-matching file
// Message-Id: <199405132049.QAA06835@elan.cs.UMD.EDU>
// Subject: Bug in g++ 2.4.5 and 2.5.8
// Date: Fri, 13 May 1994 16:49:22 -0400
// From: Evan Rosser <ejr@cs.umd.edu>

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

class TupleIterator {
public:
    TupleIterator(int *tpl);
    int& operator*();
    int  live() const;
// The compile fails with "no post-increment operator for type" at "TI++"
// below.
// It succeeds with the same declarations if set_position does not take an int.
// This occurs with G++ 2.4.5 and 2.5.8.
// Sun CC works OK with either case.
        void operator++(int);
        void set_position(int);
private:
};

int main() {

int t[5];
t[1] = 1; t[2] = 2;t[3] = 3;t[4] = 4;
TupleIterator TI(t);

    while(TI.live()){
        printf("%d", *TI);
        TI++;
    }
}