Skip to content

Commit dc87a14

Browse files
committed
[Clang] Fix sanitizer failure on DenseMap sentinel value enum
Summary: This triggers UBSan because the sentinel value `-1` is outside the range of accepted enum values. Just replace this with a small set.
1 parent 3855c49 commit dc87a14

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
#include "clang/Driver/Types.h"
6969
#include "llvm/ADT/ArrayRef.h"
7070
#include "llvm/ADT/STLExtras.h"
71+
#include "llvm/ADT/SmallSet.h"
7172
#include "llvm/ADT/StringExtras.h"
7273
#include "llvm/ADT/StringRef.h"
7374
#include "llvm/ADT/StringSet.h"
@@ -1062,7 +1063,7 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation &C,
10621063
(C.getInputArgs().hasArg(options::OPT_offload_arch_EQ) &&
10631064
!(IsCuda || IsHIP))));
10641065

1065-
llvm::DenseSet<Action::OffloadKind> Kinds;
1066+
llvm::SmallSet<Action::OffloadKind, 4> Kinds;
10661067
const std::pair<bool, Action::OffloadKind> ActiveKinds[] = {
10671068
{IsCuda, Action::OFK_Cuda},
10681069
{IsHIP, Action::OFK_HIP},

0 commit comments

Comments
 (0)