diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 6 | ||||
| -rw-r--r-- | clang/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp | 20 | ||||
| -rw-r--r-- | clang/test/SemaCXX/cxx98-compat-pedantic.cpp | 2 | 
3 files changed, 5 insertions, 23 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index d723c1fe77d..40af2075c3f 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -1205,9 +1205,9 @@ Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,  						AA_Converting);        if (!isSFINAEContext()) -        // Diagnose the compatibility of this conversion. -        Diag(StartLoc, diag::warn_cxx98_compat_array_size_conversion) -          << ArraySize->getType() << 0 << "'size_t'"; +	// Diagnose the compatibility of this conversion. +	Diag(StartLoc, diag::warn_cxx98_compat_array_size_conversion) +	  << ArraySize->getType() << 0 << Context.getSizeType();      } else {        class SizeConvertDiagnoser : public ICEConvertDiagnoser {        protected: diff --git a/clang/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp b/clang/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp index c91c361544c..f00bf1ea310 100644 --- a/clang/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp +++ b/clang/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp @@ -154,22 +154,4 @@ namespace extended_examples_cxx1y {  //expected-error@143 {{cannot initialize object parameter of type 'extended_examples_cxx1y::D' with an expression of type 'extended_examples_cxx1y::D'}}  #endif -namespace extended_examples_array_bounds { -   -  struct Foo { -    operator unsigned long();          // @160 -    operator unsigned short();  // @161 -  }; - -  void bar() { -    Foo x; -    int *p = new int[x];        // @166 -  } -} - -#ifdef CXX1Y -#else -//expected-error@166 {{ambiguous conversion of array size expression of type 'extended_examples_array_bounds::Foo' to an integral or enumeration type}} -//expected-note@160 {{conversion to integral type 'unsigned long' declared here}} -//expected-note@161 {{conversion to integral type 'unsigned short' declared here}} -#endif +// FIXME: Extend with more examples, including [expr.const] and [expr.new]. diff --git a/clang/test/SemaCXX/cxx98-compat-pedantic.cpp b/clang/test/SemaCXX/cxx98-compat-pedantic.cpp index 50ce6a49002..5fe7980994e 100644 --- a/clang/test/SemaCXX/cxx98-compat-pedantic.cpp +++ b/clang/test/SemaCXX/cxx98-compat-pedantic.cpp @@ -34,7 +34,7 @@ struct ConvertToInt {  };  int *ArraySizeConversion = new int[ConvertToInt()];  #ifdef CXX1Y2 -// expected-warning@-2 {{implicit conversion from array size expression of type 'ConvertToInt' to integral type 'size_t' is incompatible with C++98}} +// expected-warning@-2 {{implicit conversion from array size expression of type 'ConvertToInt' to integral type}} // 'unsigned long' is incompatible with C++98}}  #else  // expected-warning@-4 {{implicit conversion from array size expression of type 'ConvertToInt' to integral type 'int' is incompatible with C++98}}  #endif  | 

