1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao/* RUN: %clang_cc1 -fsyntax-only -verify -std=c90 -pedantic %s 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao */ 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaofoo (void) 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{ 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao struct b; 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao struct b* x = 0; 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao struct b* y = &*x; 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid foo2 (void) 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{ 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao typedef int (*arrayptr)[]; 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao arrayptr x = 0; 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao arrayptr y = &*x; 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid foo3 (void) 19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{ 20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void* x = 0; 21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void* y = &*x; /* expected-warning{{address of an expression of type 'void'}} */ 22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoextern const void cv1; 25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoconst void *foo4 (void) 27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{ 28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return &cv1; 29ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 30ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 31ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoextern void cv2; 32ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid *foo5 (void) 33ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{ 34ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return &cv2; /* expected-warning{{address of an expression of type 'void'}} */ 35ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 36ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 37ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotypedef const void CVT; 38ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoextern CVT cv3; 39ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 40ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoconst void *foo6 (void) 41ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{ 42ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return &cv3; 43ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 44ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 45