1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -fsyntax-only -verify %s
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotypedef void (*thread_continue_t)();
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoextern "C" {
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  extern void kernel_thread_start(thread_continue_t continuation);
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  extern void pure_c(void);
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass _IOConfigThread {
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaopublic:
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  static void main( void );
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid foo( void ) {
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  kernel_thread_start(&_IOConfigThread::main);
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  kernel_thread_start((thread_continue_t)&_IOConfigThread::main);
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  kernel_thread_start(&pure_c);
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
20