Merge with main truk.
[official-gcc.git] / gcc / testsuite / g++.dg / pr44328.C
blobbbfe233340a57c595d9b1653cc8b6a39da47a31b
1 /* { dg-do compile } */
2 /* { dg-options "-c -O2 -Wextra" } */
3 #define O_RDONLY     (1<<0)
4 #define O_WRONLY     (1<<1)
5 #define O_RDWR       (O_RDONLY|O_WRONLY)
6 #define O_CREAT      (1<<3)
7 #define O_TRUNC      (1<<6)
9 typedef enum {
10     OM_READ = 0,
11     OM_WRITE,
12     OM_READWRITE_NOCREATE,
13     OM_READWRITE_CREATE
14 } OpenMode;
16 extern int open(const char *name, int mode);
18 void open_file(const char *filename, const OpenMode rw)
20     int mode = 0;
22     switch( rw )
23     {
24     case OM_WRITE:
25         mode = O_WRONLY|O_CREAT|O_TRUNC;
26         break;
27     case OM_READ:
28         mode = O_RDONLY;
29         break;
30     case OM_READWRITE_NOCREATE:
31         mode = O_RDWR;
32         break;
33     case OM_READWRITE_CREATE:
34         mode = O_RDWR|O_CREAT|O_TRUNC;
35         break;
36     }
38     open( filename, mode );