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

Eric Fiselier via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 11 11:40:58 PST 2018


EricWF marked 13 inline comments as done.
EricWF added inline comments.


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


================
Comment at: lib/AST/ASTImporter.cpp:7387
   return new (Importer.getToContext()) CallExpr(
       Importer.getToContext(), ToCallee, ToArgs, ToType, E->getValueKind(),
       ToRParenLoc);
----------------
rsmith wrote:
> Do we need to pass through the usesADL flag here too?
Seems like it. I'll add tests as well.


================
Comment at: lib/AST/Expr.cpp:1267
     : Expr(SC, Empty), NumArgs(NumArgs) {
+  CallExprBits.UsesADL = false;
   CallExprBits.NumPreArgs = NumPreArgs;
----------------
riccibruno wrote:
> riccibruno wrote:
> > I believe that msan can cope with bit level operations just fine.
> > What I am afraid is that initializing it here will hide the
> > fact that it is not initialized during deserialization if the
> > `E->setUsesADL(Record.readInt());` is removed by mistake.
> > 
> > At least not initializing it here will leave a chance for msan
> > to catch this.
> I don't think they do.
Regardless. I'll remove the initialization.

I think potentially getting a random value will make it easier to spot bugs.


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

https://reviews.llvm.org/D55534





More information about the cfe-commits mailing list