[rtems commit] libtests/stringto01: Fix for GCC 5.0

Sebastian Huber sebh at rtems.org
Mon Mar 9 12:53:32 UTC 2015


Module:    rtems
Branch:    master
Commit:    19799fb0f749e4e1b81dd68939c32af3d3ea89af
Changeset: http://git.rtems.org/rtems/commit/?id=19799fb0f749e4e1b81dd68939c32af3d3ea89af

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Mar  9 13:52:49 2015 +0100

libtests/stringto01: Fix for GCC 5.0

---

 testsuites/libtests/stringto01/init.c              |  5 ++++
 .../libtests/stringto01/stringto_test_template.h   | 31 +++++++++++++---------
 2 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/testsuites/libtests/stringto01/init.c b/testsuites/libtests/stringto01/init.c
index 56fd720..52ac62b 100644
--- a/testsuites/libtests/stringto01/init.c
+++ b/testsuites/libtests/stringto01/init.c
@@ -26,6 +26,11 @@ rtems_task Init(rtems_task_argument argument);
 #define __STRING(x)     #x              /* stringify without expanding x */
 #define __XSTRING(x)    __STRING(x)     /* expand x, then stringify */
 
+static int get_base_10_or_16(const char *s)
+{
+  return (s[0] == '0' && s[1] == 'x') ? 16 : 10;
+}
+
 /* c99 has LLONG_MAX instead of LONG_LONG_MAX */
 #ifndef LONG_LONG_MAX
 #define LONG_LONG_MAX	LLONG_MAX
diff --git a/testsuites/libtests/stringto01/stringto_test_template.h b/testsuites/libtests/stringto01/stringto_test_template.h
index 360f4c0..1309b4b 100644
--- a/testsuites/libtests/stringto01/stringto_test_template.h
+++ b/testsuites/libtests/stringto01/stringto_test_template.h
@@ -40,7 +40,8 @@ void TEST_STRING_TO_NAME(void)
     " - NULL return value - RTEMS_INVALID_ADDRESS"
   );
   #if defined(STRING_TO_INTEGER)
-    status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, NULL, &endptr, 10 );
+    status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, NULL, &endptr,
+        get_base_10_or_16( GOOD_VALUE_STRING ) );
   #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
     status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, NULL, &endptr );
   #endif
@@ -52,7 +53,8 @@ void TEST_STRING_TO_NAME(void)
     " NULL endptr return value - RTEMS_SUCCESSFUL"
   );
   #if defined(STRING_TO_INTEGER)
-    status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, &value, NULL, 10 );
+    status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, &value, NULL,
+        get_base_10_or_16( GOOD_VALUE_STRING ) );
   #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
     status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, &value, NULL );
   #endif
@@ -67,8 +69,8 @@ void TEST_STRING_TO_NAME(void)
       " w/endptr return value - RTEMS_SUCCESSFUL"
     );
     #if defined(STRING_TO_INTEGER)
-      status = STRING_TO_NAME_METHOD(
-        STRING_TO_MAX_STRING, &value, &endptr, 10 );
+      status = STRING_TO_NAME_METHOD( STRING_TO_MAX_STRING, &value, &endptr,
+          get_base_10_or_16( STRING_TO_MAX_STRING ) );
     #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
       status = STRING_TO_NAME_METHOD( STRING_TO_MAX_STRING, &value, &endptr );
     #endif
@@ -84,7 +86,8 @@ void TEST_STRING_TO_NAME(void)
     " w/endptr return value - RTEMS_SUCCESSFUL"
   );
   #if defined(STRING_TO_INTEGER)
-    status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, &value, &endptr, 10 );
+    status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, &value, &endptr,
+        get_base_10_or_16( GOOD_VALUE_STRING ) );
   #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
     status = STRING_TO_NAME_METHOD( GOOD_VALUE_STRING, &value, &endptr );
   #endif
@@ -99,7 +102,8 @@ void TEST_STRING_TO_NAME(void)
     " w/endptr return value - RTEMS_NOT_DEFINED"
   );
   #if defined(STRING_TO_INTEGER)
-    status = STRING_TO_NAME_METHOD( BAD_VALUE_STRING, &value, &endptr, 10 );
+    status = STRING_TO_NAME_METHOD( BAD_VALUE_STRING, &value, &endptr,
+        get_base_10_or_16( BAD_VALUE_STRING ) );
   #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
     status = STRING_TO_NAME_METHOD( BAD_VALUE_STRING, &value, &endptr );
   #endif
@@ -114,7 +118,8 @@ void TEST_STRING_TO_NAME(void)
     " - empty string - w/endptr return value - RTEMS_NOT_DEFINED"
   );
   #if defined(STRING_TO_INTEGER)
-    status = STRING_TO_NAME_METHOD( "", &value, &endptr, 10 );
+    status = STRING_TO_NAME_METHOD( "", &value, &endptr,
+        get_base_10_or_16( "" ) );
   #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
     status = STRING_TO_NAME_METHOD( "", &value, &endptr );
   #endif
@@ -129,8 +134,8 @@ void TEST_STRING_TO_NAME(void)
     puts(
     STRING_TO_NAME_METHOD_STRING " - overflow - RTEMS_INVALID_NUMBER" );
     #if defined(STRING_TO_INTEGER)
-      status = STRING_TO_NAME_METHOD(
-                 TEST_TOO_LARGE_STRING, &value, &endptr, 10 );
+      status = STRING_TO_NAME_METHOD( TEST_TOO_LARGE_STRING, &value, &endptr,
+          get_base_10_or_16( TEST_TOO_LARGE_STRING ) );
     #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
       status = STRING_TO_NAME_METHOD( TEST_TOO_LARGE_STRING, &value, &endptr );
     #endif
@@ -148,8 +153,8 @@ void TEST_STRING_TO_NAME(void)
     puts(
     STRING_TO_NAME_METHOD_STRING " - overflow - RTEMS_INVALID_NUMBER" );
     #if defined(STRING_TO_INTEGER)
-      status = STRING_TO_NAME_METHOD(
-                 TEST_TOO_LARGE_FOR_UCHAR, &value, &endptr, 10 );
+      status = STRING_TO_NAME_METHOD( TEST_TOO_LARGE_FOR_UCHAR, &value,
+          &endptr, get_base_10_or_16( TEST_TOO_LARGE_FOR_UCHAR ) );
     #endif
     if ( status != RTEMS_INVALID_NUMBER )
       printf( "ERROR = %s\n", rtems_status_text(status) );
@@ -163,8 +168,8 @@ void TEST_STRING_TO_NAME(void)
     value = 0;
     puts( STRING_TO_NAME_METHOD_STRING "- RTEMS_INVALID_NUMBER" );
     #if defined(STRING_TO_INTEGER)
-      status = STRING_TO_NAME_METHOD(
-                 TEST_TOO_SMALL_STRING, &value, &endptr, 10 );
+      status = STRING_TO_NAME_METHOD( TEST_TOO_SMALL_STRING, &value, &endptr,
+          get_base_10_or_16( TEST_TOO_SMALL_STRING ) );
     #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
       status = STRING_TO_NAME_METHOD( TEST_TOO_SMALL_STRING, &value, &endptr );
     #endif



More information about the vc mailing list