[cfe-commits] r130318 - in /cfe/trunk: lib/Sema/SemaChecking.cpp test/SemaCXX/warn-non-pod-memset.cpp
Chandler Carruth
chandlerc at gmail.com
Wed Apr 27 11:48:59 PDT 2011
Author: chandlerc
Date: Wed Apr 27 13:48:59 2011
New Revision: 130318
URL: http://llvm.org/viewvc/llvm-project?rev=130318&view=rev
Log:
Heh, funny thing, 'void' isn't a POD type. Nice of us to suggest it to
silence this warning. ;]
Fixed that obvious bug and added a bit more testing as well.
Modified:
cfe/trunk/lib/Sema/SemaChecking.cpp
cfe/trunk/test/SemaCXX/warn-non-pod-memset.cpp
Modified: cfe/trunk/lib/Sema/SemaChecking.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=130318&r1=130317&r2=130318&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaChecking.cpp (original)
+++ cfe/trunk/lib/Sema/SemaChecking.cpp Wed Apr 27 13:48:59 2011
@@ -1810,7 +1810,7 @@
QualType DestTy = Dest->getType();
if (const PointerType *DestPtrTy = DestTy->getAs<PointerType>()) {
QualType PointeeTy = DestPtrTy->getPointeeType();
- if (!PointeeTy->isPODType()) {
+ if (!PointeeTy->isPODType() && !PointeeTy->isVoidType()) {
DiagRuntimeBehavior(
Dest->getExprLoc(), Dest,
PDiag(diag::warn_non_pod_memset)
Modified: cfe/trunk/test/SemaCXX/warn-non-pod-memset.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/warn-non-pod-memset.cpp?rev=130318&r1=130317&r2=130318&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/warn-non-pod-memset.cpp (original)
+++ cfe/trunk/test/SemaCXX/warn-non-pod-memset.cpp Wed Apr 27 13:48:59 2011
@@ -32,7 +32,16 @@
// expected-note {{explicitly cast the pointer to silence this warning}}
}
-void test_nowarn() {
+void test_nowarn(void *void_ptr) {
+ int i, *iptr;
+ float y;
+ char c;
+
+ memset(&i, 0, sizeof i);
+ memset(&iptr, 0, sizeof iptr);
+ memset(&y, 0, sizeof y);
+ memset(&c, 0, sizeof c);
+ memset(void_ptr, 0, 42);
memset(&s1, 0, sizeof s1);
memset(&s2, 0, sizeof s2);
memset(&s3, 0, sizeof s3);
More information about the cfe-commits
mailing list