[PATCH] D55534: [AST] Store "UsesADL" information in CallExpr.

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 11 09:42:46 PST 2018


rsmith added inline comments.


================
Comment at: include/clang/Sema/Sema.h:2758
                             bool AllowExplicit = false,
+                            bool IsADLCandidate = false,
                             ConversionSequenceList EarlyConversions = None);
----------------
Long lists of bool arguments make me nervous, especially with default arguments. Can you introduce an enum for the new param at least?


================
Comment at: lib/AST/ASTImporter.cpp:7387
   return new (Importer.getToContext()) CallExpr(
       Importer.getToContext(), ToCallee, ToArgs, ToType, E->getValueKind(),
       ToRParenLoc);
----------------
Do we need to pass through the usesADL flag here too?


================
Comment at: lib/AST/Expr.cpp:1267
     : Expr(SC, Empty), NumArgs(NumArgs) {
+  CallExprBits.UsesADL = false;
   CallExprBits.NumPreArgs = NumPreArgs;
----------------
EricWF wrote:
> riccibruno wrote:
> > It do not really matter but there is not point initializing this bit here.
> I'm a but nervous MSAN won't catch an uninitialized read because it's a bitfield, so I would rather be safe than sorry?
IIRC all the ExprBits get initialized by the Expr(EmptyShell) ctor.


================
Comment at: lib/Sema/SemaExpr.cpp:5673
+  if (Config) {
     TheCall = new (Context)
         CUDAKernelCallExpr(Context, Fn, cast<CallExpr>(Config), Args, ResultTy,
----------------
If you believe that CUDA kernel calls can't find functions with ADL, please add an assert here.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55534/new/

https://reviews.llvm.org/D55534





More information about the cfe-commits mailing list