================
@@ -0,0 +1,72 @@
+//===- DynamicAllocationArgumentsCXX.h - operator new/delete args 
---------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the argument candidate and resolution types for operators
+// new and new[] overload resolution.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_SEMA_DYNAMICALLOCATIONARGUMENTSCXX_H
+#define LLVM_CLANG_SEMA_DYNAMICALLOCATIONARGUMENTSCXX_H
+
+#include "clang/AST/ExprCXX.h"
+#include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/SmallVector.h"
+
+namespace clang {
+
+class LookupResult;
+class Sema;
+
+struct ImplicitAllocationArguments {
+  friend Sema;
+
+  ArrayRef<Expr *> getImplicitArguments() const {
+    return ArrayRef(ImplicitArguments, ArgumentCount);
+  }
+
+  Expr *getAlignmentArgument() const {
+    if (PassAlignment == AlignedAllocationMode::Yes)
+      return ImplicitArguments[ArgumentCount - 1];
+    return nullptr;
+  }
+
+  void updateLookupForMSVCCompatibility(Sema &, LookupResult &);
+  TypeAwareAllocationMode PassTypeIdentity;
+  AlignedAllocationMode PassAlignment;
+
+private:
+  ImplicitAllocationArguments(Sema &SemaRef, Expr *TypeIdentityArg,
+                              Expr *SizeArg, Expr *AlignArg,
+                              bool IsMSVCCompatibilityFallback);
----------------
ojhunt wrote:

I don't see the value in a default argument for a very small set of callers, 
all of whom are new. I would rather be explicit and only reluctantly switched 
to a bool rather than an enum :D

I like very explicit code unless I think there's a strong argument to the 
contrary, and this case didn't seem to warrant the brevity of a default arg.

https://github.com/llvm/llvm-project/pull/211482
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to