1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify %s 23d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet 3d37b360bf9f954af119c9805fdc79ab9d30e06c6Richard Smithvoid f() const; // expected-error {{non-member function cannot have 'const' qualifier}} 4d37b360bf9f954af119c9805fdc79ab9d30e06c6Richard Smithvoid (*pf)() const; // expected-error {{pointer to function type cannot have 'const' qualifier}} 5d37b360bf9f954af119c9805fdc79ab9d30e06c6Richard Smithextern void (&rf)() const; // expected-error {{reference to function type cannot have 'const' qualifier}} 63d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet 7d37b360bf9f954af119c9805fdc79ab9d30e06c6Richard Smithtypedef void cfn() const; 8d37b360bf9f954af119c9805fdc79ab9d30e06c6Richard Smithcfn f2; // expected-error {{non-member function of type 'cfn' (aka 'void () const') cannot have 'const' qualifier}} 93d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet 103d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venetclass C { 113d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet void f() const; 123d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet cfn f2; 13d37b360bf9f954af119c9805fdc79ab9d30e06c6Richard Smith static void f3() const; // expected-error {{static member function cannot have 'const' qualifier}} 14d37b360bf9f954af119c9805fdc79ab9d30e06c6Richard Smith static cfn f4; // expected-error {{static member function of type 'cfn' (aka 'void () const') cannot have 'const' qualifier}} 153d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet 163d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet void m1() { 173d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet x = 0; 183d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet } 193d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet 203d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet void m2() const { 213d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet x = 0; // expected-error {{read-only variable is not assignable}} 223d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet } 233d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet 243d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet int x; 253d658640abc128dcc84a5a5201456395c86c4fa6Cedric Venet}; 26f9ea1f392ab8946f7bfc3f98802a8e5e6fe073f3Sebastian Redl 27f9ea1f392ab8946f7bfc3f98802a8e5e6fe073f3Sebastian Redlvoid (C::*mpf)() const; 28f9ea1f392ab8946f7bfc3f98802a8e5e6fe073f3Sebastian Redlcfn C::*mpg; 29