1 // { dg-do assemble  }
2 // { dg-options "-O" }
3 // Origin: Benjamin Pflugmann <philemon@spin.de>
4 
5 // DR 295 allows qualification via typedef
6 
7 typedef const char *(func_type)();
8 
9 class C
10 {
11 public:
12   func_type *Function;
13   // The following is DR 295 dependent
function(void)14   const func_type* function(void) { return Function; }
15   volatile func_type* functionv(void);
16 } action;
17 
work(const char * source)18 void work(const char *source)
19 {
20   work( action.function()() );
21 }
22