Fix superpmi.exe handling of exclusion lists (#62349)
authorBruce Forstall <brucefo@microsoft.com>
Fri, 3 Dec 2021 23:44:37 +0000 (15:44 -0800)
committerGitHub <noreply@github.com>
Fri, 3 Dec 2021 23:44:37 +0000 (15:44 -0800)
commitf3889092cddbca2ab138dc217db1ad2930e860a1
treeb923f473590f4d72e0152899aa9cbc8c92d650ff
parent2ce0a9eb90972d2b62dde64c2cdb05ecd2e1a81f
Fix superpmi.exe handling of exclusion lists (#62349)

superpmi.exe has the concept of an exclusion list file which is automatically read
and processed when reading a .mch file. (I'm not sure if anyone actually uses it.)
So, when opening a `t.mch` file, it looks for an adjacent `t.mch.exc` and then `t.exc`
file.

There was a bug where it would also look for a `t` file (the comments say it takes t.exc.mch
and looks for t.exc, but it didn't check for that). In my case when I was testing, I actually
had a `t` directory (not file), which it found, but then emitted an error trying to load.

So, two fixes:
1. For `t.mch`, don't look for `t`.
2. Check all cases for being a directory, and fail if any name is a directory.
src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextreader.cpp