diff options
-rw-r--r-- | lib/Sema/SemaExprCXX.cpp | 3 | ||||
-rw-r--r-- | test/SemaCXX/type-traits.cpp | 16 |
2 files changed, 10 insertions, 9 deletions
diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp index 7d345073d7..7c8cabadb2 100644 --- a/lib/Sema/SemaExprCXX.cpp +++ b/lib/Sema/SemaExprCXX.cpp @@ -3010,7 +3010,8 @@ static bool EvaluateUnaryTypeTrait(Sema &Self, UnaryTypeTrait UTT, case UTT_IsStandardLayout: return T->isStandardLayoutType(); case UTT_IsPOD: - return T.isPODType(Self.Context); + return Self.LangOpts.CPlusPlus0x ? T.isCXX11PODType(Self.Context) + : T.isPODType(Self.Context); case UTT_IsLiteral: return T->isLiteralType(); case UTT_IsEmpty: diff --git a/test/SemaCXX/type-traits.cpp b/test/SemaCXX/type-traits.cpp index f53939ac17..594d7dd03b 100644 --- a/test/SemaCXX/type-traits.cpp +++ b/test/SemaCXX/type-traits.cpp @@ -131,25 +131,25 @@ void is_pod() { int arr[T(__is_pod(HasAnonymousUnion))]; } { int arr[T(__is_pod(Vector))]; } { int arr[T(__is_pod(VectorExt))]; } + { int arr[T(__is_pod(Derives))]; } + { int arr[T(__is_pod(DerivesAr))]; } + { int arr[T(__is_pod(DerivesArNB))]; } + { int arr[T(__is_pod(DerivesEmpty))]; } + { int arr[T(__is_pod(HasPriv))]; } + { int arr[T(__is_pod(HasProt))]; } + { int arr[T(__is_pod(DerivesHasPriv))]; } + { int arr[T(__is_pod(DerivesHasProt))]; } - { int arr[F(__is_pod(Derives))]; } - { int arr[F(__is_pod(DerivesAr))]; } - { int arr[F(__is_pod(DerivesArNB))]; } - { int arr[F(__is_pod(DerivesEmpty))]; } { int arr[F(__is_pod(HasCons))]; } { int arr[F(__is_pod(HasCopyAssign))]; } { int arr[F(__is_pod(HasMoveAssign))]; } { int arr[F(__is_pod(HasDest))]; } - { int arr[F(__is_pod(HasPriv))]; } - { int arr[F(__is_pod(HasProt))]; } { int arr[F(__is_pod(HasRef))]; } { int arr[F(__is_pod(HasVirt))]; } { int arr[F(__is_pod(DerivesHasCons))]; } { int arr[F(__is_pod(DerivesHasCopyAssign))]; } { int arr[F(__is_pod(DerivesHasMoveAssign))]; } { int arr[F(__is_pod(DerivesHasDest))]; } - { int arr[F(__is_pod(DerivesHasPriv))]; } - { int arr[F(__is_pod(DerivesHasProt))]; } { int arr[F(__is_pod(DerivesHasRef))]; } { int arr[F(__is_pod(DerivesHasVirt))]; } { int arr[F(__is_pod(NonPOD))]; } |