[NFC][AST] Return void from setUseQualifiedLookup
authorVitaly Buka <vitalybuka@google.com>
Fri, 12 May 2023 00:11:49 +0000 (17:11 -0700)
committerVitaly Buka <vitalybuka@google.com>
Fri, 12 May 2023 00:13:19 +0000 (17:13 -0700)
It uses to initialize the class. If so, it returns uninitalized value.
This is UB and msan with -fno-inline will complain.

clang/include/clang/AST/DeclBase.h
clang/lib/Sema/SemaLookup.cpp

index 65215db..f7d5b3a 100644 (file)
@@ -2540,10 +2540,8 @@ public:
                  D == LastDecl);
   }
 
-  bool setUseQualifiedLookup(bool use = true) const {
-    bool old_value = DeclContextBits.UseQualifiedLookup;
+  void setUseQualifiedLookup(bool use = true) const {
     DeclContextBits.UseQualifiedLookup = use;
-    return old_value;
   }
 
   bool shouldUseQualifiedLookup() const {
index 537c097..5a2a361 100644 (file)
@@ -2424,8 +2424,9 @@ bool Sema::LookupQualifiedName(LookupResult &R, DeclContext *LookupCtx,
     bool oldVal;
     DeclContext *Context;
     // Set flag in DeclContext informing debugger that we're looking for qualified name
-    QualifiedLookupInScope(DeclContext *ctx) : Context(ctx) {
-      oldVal = ctx->setUseQualifiedLookup();
+    QualifiedLookupInScope(DeclContext *ctx)
+        : oldVal(ctx->shouldUseQualifiedLookup()), Context(ctx) {
+      ctx->setUseQualifiedLookup();
     }
     ~QualifiedLookupInScope() {
       Context->setUseQualifiedLookup(oldVal);