r210388 - Fix crash declaring global allocation function with zero parameters. Fixes PR19968!
Nick Lewycky
nicholas at mxc.ca
Fri Jun 6 17:43:57 PDT 2014
Author: nicholas
Date: Fri Jun 6 19:43:57 2014
New Revision: 210388
URL: http://llvm.org/viewvc/llvm-project?rev=210388&view=rev
Log:
Fix crash declaring global allocation function with zero parameters. Fixes PR19968!
Modified:
cfe/trunk/lib/AST/Decl.cpp
cfe/trunk/test/SemaCXX/new-delete.cpp
Modified: cfe/trunk/lib/AST/Decl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=210388&r1=210387&r2=210388&view=diff
==============================================================================
--- cfe/trunk/lib/AST/Decl.cpp (original)
+++ cfe/trunk/lib/AST/Decl.cpp Fri Jun 6 19:43:57 2014
@@ -2348,7 +2348,7 @@ bool FunctionDecl::isReplaceableGlobalAl
return false;
const FunctionProtoType *FPT = getType()->castAs<FunctionProtoType>();
- if (FPT->getNumParams() > 2 || FPT->isVariadic())
+ if (FPT->getNumParams() == 0 || FPT->getNumParams() > 2 || FPT->isVariadic())
return false;
// If this is a single-parameter function, it must be a replaceable global
Modified: cfe/trunk/test/SemaCXX/new-delete.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/new-delete.cpp?rev=210388&r1=210387&r2=210388&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/new-delete.cpp (original)
+++ cfe/trunk/test/SemaCXX/new-delete.cpp Fri Jun 6 19:43:57 2014
@@ -521,3 +521,6 @@ class DeletingPlaceholder {
namespace PR18544 {
inline void *operator new(size_t); // expected-error {{'operator new' cannot be declared inside a namespace}}
}
+
+// PR19968
+inline void* operator new(); // expected-error {{'operator new' must have at least one parameter}}
More information about the cfe-commits
mailing list