[ADT] Allow empty string in StringSet
authorSam Clegg <sbc@chromium.org>
Fri, 14 Feb 2020 04:25:55 +0000 (20:25 -0800)
committerSam Clegg <sbc@chromium.org>
Mon, 30 Mar 2020 19:59:34 +0000 (12:59 -0700)
commitde77d2312751514ce9fbf9b0bf11cbe93cd486f9
tree8fb41ea4c57a1360da37c4ec32991b5e90bbb769
parent9eb1b41811c76eec35c5feafb2fdc781f356bf48
[ADT] Allow empty string in StringSet

Also add a test case to wasm-ld that asserts without this change.
Internally wasm-ld builds a StringMap of exported functions and it seems
like allowing empty string in the set is preferable to adding checks.

This assert looks like it was most likely just a historical accident.
It started life here purely to support InputLanguagesSet:

  eeac27e38c5c567d63bbfa5410620d955696491b

Then got extracted here:

  e57a4033385c5976cbb17af1e962b1224a61183b

Then got moved to AST here

  5c48bae209bcbd261886f63abac695b1e30544e6

With the `InLang` paramater name still intact which suggested is
InputLanguagesSet origins.

Differential Revision: https://reviews.llvm.org/D74589
llvm/include/llvm/ADT/StringSet.h
llvm/unittests/ADT/StringSetTest.cpp