forked from OSchip/llvm-project
Fix compilation on Darwin with expensive checks.
After r327219 was landed, the bot with expensive checks on GreenDragon started failing. The problem was missing symbols `regex_t` and `regmatch_t` in `xlocale/_regex.h`. The latter was included because after the change in r327219, `random` is needed, which transitively includes `xlocale.h.` which in turn conditionally includes `xlocale/_regex.h` when _REGEX_H_ is defined. Because this is the header guard in `regex_impl.h` and because `regex_impl.h` was included before the other LLVM includes, `xlocale/_regex.h` was included without the necessary types being available. This commit fixes this by moving the include of `regex_impl.h` all the way down. I also added a comment to stress the significance of its position. llvm-svn: 327256
This commit is contained in:
parent
9c95dfe658
commit
2b8b90a768
|
@ -12,11 +12,16 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/Support/Regex.h"
|
||||
#include "regex_impl.h"
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/ADT/Twine.h"
|
||||
#include <string>
|
||||
|
||||
// Important this comes last because it defines "_REGEX_H_". At least on
|
||||
// Darwin, if included before any header that (transitively) includes
|
||||
// xlocale.h, this will cause trouble, because of missing regex-related types.
|
||||
#include "regex_impl.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
Regex::Regex() : preg(nullptr), error(REG_BADPAT) {}
|
||||
|
|
Loading…
Reference in New Issue