diff options
| -rw-r--r-- | clang/include/clang/Sema/DeclSpec.h | 6 | ||||
| -rw-r--r-- | clang/test/SemaCXX/conversion-function.cpp | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/clang/include/clang/Sema/DeclSpec.h b/clang/include/clang/Sema/DeclSpec.h index 493f68708a4..99941b2e326 100644 --- a/clang/include/clang/Sema/DeclSpec.h +++ b/clang/include/clang/Sema/DeclSpec.h @@ -1231,9 +1231,9 @@ struct DeclaratorChunk { /// /// This is used in various places for error recovery. void freeParams() { - if (Params) { - delete Params->DefaultArgTokens; - Params->DefaultArgTokens = nullptr; + for (unsigned I = 0; I < NumParams; ++I) { + delete Params[I].DefaultArgTokens; + Params[I].DefaultArgTokens = nullptr; } if (DeleteParams) { delete[] Params; diff --git a/clang/test/SemaCXX/conversion-function.cpp b/clang/test/SemaCXX/conversion-function.cpp index dcc0609b587..40ac33b8eb0 100644 --- a/clang/test/SemaCXX/conversion-function.cpp +++ b/clang/test/SemaCXX/conversion-function.cpp @@ -27,7 +27,7 @@ public: void operator bool(int, ...) const; // expected-error{{conversion function cannot have a return type}} \ // expected-error{{conversion function cannot have any parameters}} - operator bool(int a = 4) const; // expected-error{{conversion function cannot have any parameters}} + operator bool(int a = 4, int b = 6) const; // expected-error{{conversion function cannot have any parameters}} operator float(...) const; // expected-error{{conversion function cannot be variadic}} |

