r306809 - Ambiguity might be also uninitialized. Use llvm::Optional.

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 10 09:39:20 PDT 2017


Which compiler/what warning was flagging this?

It doesn't look like Clang builds by default with
-Wconditional-uninitialized on, so I'm surprised if Clang was diagnosing
anything here.

In any case - it's probably better to omit the "WasAmbiguous" flag.
Optional already has a flag that says whether it has a value, so either you
can rely on that or assert against it explicitly:

  assert(SavedAK);
  Ambiguity = *SavedAK;

But I'd probably skip adding the assertion here - especially since it
currently doesn't have a message, so it's probably no better than the
assert that Optional's operator* will do anyway.

On Fri, Jun 30, 2017 at 2:25 AM Vassil Vassilev via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: vvassilev
> Date: Fri Jun 30 02:25:43 2017
> New Revision: 306809
>
> URL: http://llvm.org/viewvc/llvm-project?rev=306809&view=rev
> Log:
> Ambiguity might be also uninitialized. Use llvm::Optional.
>
>
> Modified:
>     cfe/trunk/include/clang/Sema/Lookup.h
>
> Modified: cfe/trunk/include/clang/Sema/Lookup.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Lookup.h?rev=306809&r1=306808&r2=306809&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Sema/Lookup.h (original)
> +++ cfe/trunk/include/clang/Sema/Lookup.h Fri Jun 30 02:25:43 2017
> @@ -18,6 +18,8 @@
>  #include "clang/AST/DeclCXX.h"
>  #include "clang/Sema/Sema.h"
>
> +#include "llvm/ADT/Optional.h"
> +
>  namespace clang {
>
>  /// @brief Represents the results of name lookup.
> @@ -465,9 +467,10 @@ public:
>          Paths = nullptr;
>        }
>      } else {
> -      AmbiguityKind SavedAK = Ambiguity;
> +      llvm::Optional<AmbiguityKind> SavedAK;
>        bool WasAmbiguous = false;
>        if (ResultKind == Ambiguous) {
> +        SavedAK = Ambiguity;
>          WasAmbiguous = true;
>        }
>        ResultKind = Found;
> @@ -478,7 +481,7 @@ public:
>        if (ResultKind == Ambiguous) {
>          (void)WasAmbiguous;
>          assert(WasAmbiguous);
> -        Ambiguity = SavedAK;
> +        Ambiguity = SavedAK.getValue();
>        } else if (Paths) {
>          deletePaths(Paths);
>          Paths = nullptr;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170710/d35192fa/attachment-0001.html>


More information about the cfe-commits mailing list