diff options
author | Anders Carlsson <andersca@mac.com> | 2009-09-13 21:33:06 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-09-13 21:33:06 +0000 |
commit | 2c59d3c19715cb318a0a5939c735b8345d14d281 (patch) | |
tree | 983a3c3341ce9db1748ceb7f291bf26189a408fa /test/SemaCXX/conversion-function.cpp | |
parent | 8195bc932d27e21be46b9a1f8ce268ebd419246b (diff) |
Perform the C++ specific semantic checks of a function declaration after it's been merged with the previous declaration. This ensures that getPreviousDecl() will have the right value when ActOnConversionDeclarator is called.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81720 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/conversion-function.cpp')
-rw-r--r-- | test/SemaCXX/conversion-function.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/test/SemaCXX/conversion-function.cpp b/test/SemaCXX/conversion-function.cpp index 1ca1e689ea..cde2851bf3 100644 --- a/test/SemaCXX/conversion-function.cpp +++ b/test/SemaCXX/conversion-function.cpp @@ -64,3 +64,14 @@ struct Flip { operator Flop() const; }; Flop flop = Flip(); // expected-error {{cannot initialize 'flop' with an rvalue of type 'struct Flip'}} + +// This tests that we don't add the second conversion declaration to the list of user conversions +struct C { + operator const char *() const; +}; + +C::operator const char*() const { return 0; } + +void f(const C& c) { + const char* v = c; +} |