[all-commits] [llvm/llvm-project] f7d674: [llvm] Assert two ValIDs are the same kind before ...
PiJoules via All-commits
all-commits at lists.llvm.org
Thu Sep 22 15:38:27 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f7d674910d2dadae209f4a93373481c450f089f7
https://github.com/llvm/llvm-project/commit/f7d674910d2dadae209f4a93373481c450f089f7
Author: Leonard Chan <leonardchan at google.com>
Date: 2022-09-22 (Thu, 22 Sep 2022)
Changed paths:
M llvm/include/llvm/AsmParser/LLParser.h
Log Message:
-----------
[llvm] Assert two ValIDs are the same kind before comparing
I suspect the reason for why D134234 was failing sometimes is because
"operator<" for a ValID could compare ValIDs of different kinds but have
the same non-active values and return an incorrect result. This is an
issue if I attempt to store ValIDs of different kinds in an std::map but
we compare different "active" values. For example, if I create an
std::map and store some ValIDs of kind t_GlobalName, then I insert a
ValID of kind t_GlobalID, the current "operator<" will see that one of
the operands is a t_GlobalID and compare it against the UIntVal of other
items in the map, but the other items in the map don't set UIntVal
because they're not t_GlobalIDs, so I compare against a
dummy/uninitialized value.
It seems pretty easy to add mixed ValID kinds into an std::map in
LLParser, so this just asserts that when doing the comparison that both
ValIDs are the same kind.
Differential Revision: https://reviews.llvm.org/D134488
More information about the All-commits
mailing list