summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-28 19:37:57 +0000
committerChris Lattner <sabre@nondot.org>2009-02-28 19:37:57 +0000
commit309e48695b9533db3c6e37e15dd4ebc57a0dd351 (patch)
treed9fbb3ffea4b3a0643c91bbfd6e080cb7541a637
parentd4ed7e8bb9fae939e2bf127af7e2e0b50aacbb36 (diff)
downloadbcm5719-llvm-309e48695b9533db3c6e37e15dd4ebc57a0dd351.tar.gz
bcm5719-llvm-309e48695b9533db3c6e37e15dd4ebc57a0dd351.zip
Fix a crash in test/Parser/control-scope.c that testrunner didn't
notice because it was a negative test with a fix suggested by Jean-Daniel Dupas. Convert the test from a negative to a positive test to catch stuff like this. llvm-svn: 65708
-rw-r--r--clang/lib/Sema/SemaDecl.cpp2
-rw-r--r--clang/test/Parser/control-scope.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 98b8dbc9c07..c9b5405fbe1 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -3497,7 +3497,7 @@ Sema::DeclTy *Sema::ActOnEnumConstant(Scope *S, DeclTy *theEnumDecl,
else
Diag(IdLoc, diag::err_redefinition) << Id;
Diag(PrevDecl->getLocation(), diag::note_previous_definition);
- Val->Destroy(Context);
+ if (Val) Val->Destroy(Context);
return 0;
}
}
diff --git a/clang/test/Parser/control-scope.c b/clang/test/Parser/control-scope.c
index 3d588d63b4c..4beed7eecd3 100644
--- a/clang/test/Parser/control-scope.c
+++ b/clang/test/Parser/control-scope.c
@@ -1,8 +1,8 @@
-// RUN: not clang %s -std=c90 &&
+// RUN: clang %s -std=c90 -verify &&
// RUN: clang %s -std=c99
int f (int z) {
- if (z + sizeof (enum {a}))
- return 1 + sizeof (enum {a});
+ if (z + sizeof (enum {a})) // expected-note {{previous definition is here}}
+ return 1 + sizeof (enum {a}); // expected-error {{redefinition of enumerator 'a'}}
return 0;
}
OpenPOWER on IntegriCloud