Author: lvoufo
Date: Mon Jun 17 13:41:38 2013
New Revision: 184100

URL: http://llvm.org/viewvc/llvm-project?rev=184100&view=rev
Log:
Updated test cases for contextual conversion

Modified:
    cfe/trunk/lib/Sema/SemaExprCXX.cpp
    cfe/trunk/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp
    cfe/trunk/test/SemaCXX/cxx98-compat-pedantic.cpp

Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=184100&r1=184099&r2=184100&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Mon Jun 17 13:41:38 2013
@@ -1205,9 +1205,9 @@ Sema::BuildCXXNew(SourceRange Range, boo
                                                AA_Converting);
 
       if (!isSFINAEContext())
-       // Diagnose the compatibility of this conversion.
-       Diag(StartLoc, diag::warn_cxx98_compat_array_size_conversion)
-         << ArraySize->getType() << 0 << Context.getSizeType();
+        // Diagnose the compatibility of this conversion.
+        Diag(StartLoc, diag::warn_cxx98_compat_array_size_conversion)
+          << ArraySize->getType() << 0 << "'size_t'";
     } else {
       class SizeConvertDiagnoser : public ICEConvertDiagnoser {
       protected:

Modified: cfe/trunk/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp?rev=184100&r1=184099&r2=184100&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp (original)
+++ cfe/trunk/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp Mon Jun 17 
13:41:38 2013
@@ -154,4 +154,22 @@ 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
 
-// FIXME: Extend with more examples, including [expr.const] and [expr.new].
+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

Modified: cfe/trunk/test/SemaCXX/cxx98-compat-pedantic.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cxx98-compat-pedantic.cpp?rev=184100&r1=184099&r2=184100&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/cxx98-compat-pedantic.cpp (original)
+++ cfe/trunk/test/SemaCXX/cxx98-compat-pedantic.cpp Mon Jun 17 13:41:38 2013
@@ -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}} // 'unsigned long' is incompatible with 
C++98}}
+// expected-warning@-2 {{implicit conversion from array size expression of 
type 'ConvertToInt' to integral type 'size_t' 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


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to