Fix PR4007: clang doesn't know -Werror-foo is the same as -Werror=foo

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69557 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-04-19 22:07:21 +00:00
Родитель 4d8aac3778
Коммит 5b912d9832
2 изменённых файлов: 5 добавлений и 3 удалений

Просмотреть файл

@ -1,4 +1,5 @@
// RUN: clang-cc %s -Eonly -Werror=undef -verify
// RUN: clang-cc %s -Eonly -Werror=undef -verify &&
// RUN: clang-cc %s -Eonly -Werror-undef -verify
extern int x;

Просмотреть файл

@ -121,11 +121,12 @@ bool clang::ProcessWarningOptions(Diagnostic &Diags) {
}
// -Werror/-Wno-error is a special case, not controlled by the option table.
// It also has the "specifier" form of -Werror=foo.
// It also has the "specifier" form of -Werror=foo and -Werror-foo.
if (OptEnd-OptStart >= 5 && memcmp(OptStart, "error", 5) == 0) {
const char *Specifier = 0;
if (OptEnd-OptStart != 5) { // Specifier must be present.
if (OptStart[5] != '=' || OptEnd-OptStart == 6) {
if ((OptStart[5] != '=' && OptStart[5] != '-') ||
OptEnd-OptStart == 6) {
fprintf(stderr, "warning: unknown -Werror warning specifier: -W%s\n",
Opt.c_str());
continue;