This patch attempts to fix llvm.org/PR31905.
The fix is to only allow the compiler to search the top-level include directories when looking a module.modulemap definition in ASTReader.cpp. This prevent loading arbitrary module maps from directories that would never normally be searched for a module map for _Builtin_stddef_max_align_t.
Perhaps it would be better to figure out what top-level search directory the module was originally built under, and then remove the prefix of the top-level directory. Then we could allow the search to look under matching subdirectories of other top-level search paths. However this seems like it could be incorrect as well.
This is only trying to catch the case where we've already loaded a module map for the module and the two conflict. We should just set AllowSearch to false here. If we want to also perform validation on the case where we load the module map after importing another definition, that should be handled if/when we load the module map.