PR jit/66783: improve error messages
authorDavid Malcolm <dmalcolm@redhat.com>
Wed, 8 Jul 2015 14:41:59 +0000 (14:41 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Wed, 8 Jul 2015 14:41:59 +0000 (14:41 +0000)
gcc/jit/ChangeLog:
PR jit/66783
* libgccjit.c (gcc_jit_context_new_field): Show name of field in
"unknown size" error message.
(gcc_jit_struct_set_fields): Show name of struct in error message.
(gcc_jit_context_new_global): Show name of global in
"unknown size" error message.
(gcc_jit_function_new_local): Likewise for local.

gcc/testsuite/ChangeLog:
PR jit/66783
* jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c
(verify_code): Update expected error message.
* jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c
(verify_code): Likewise.
* jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c
(verify_code): Likewise.

From-SVN: r225557

gcc/jit/ChangeLog
gcc/jit/libgccjit.c
gcc/testsuite/ChangeLog
gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c
gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c
gcc/testsuite/jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c

index 6fdcb604623fb790e853eb3c68649fc967384e3d..e9a32f0ae966a09ace1fc00ca9b14227574e12a6 100644 (file)
@@ -1,3 +1,13 @@
+2015-07-08  David Malcolm  <dmalcolm@redhat.com>
+
+       PR jit/66783
+       * libgccjit.c (gcc_jit_context_new_field): Show name of field in
+       "unknown size" error message.
+       (gcc_jit_struct_set_fields): Show name of struct in error message.
+       (gcc_jit_context_new_global): Show name of global in
+       "unknown size" error message.
+       (gcc_jit_function_new_local): Likewise for local.
+
 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
 
        * dummy-frontend.c: Adjust includes.
index 85d9f62f041f801a7f30b2a1881e5595dd8a491c..eee513f05c857a412e9d60e80c2134b75f3c064c 100644 (file)
@@ -543,10 +543,11 @@ gcc_jit_context_new_field (gcc_jit_context *ctxt,
   /* LOC can be NULL.  */
   RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type");
   RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name");
-  RETURN_NULL_IF_FAIL_PRINTF1 (
+  RETURN_NULL_IF_FAIL_PRINTF2 (
     type->has_known_size (),
     ctxt, loc,
-    "type has unknown size (type: %s)",
+    "unknown size for field \"%s\" (type: %s)",
+    name,
     type->get_debug_string ());
 
   return (gcc_jit_field *)ctxt->new_field (loc, type, name);
@@ -662,7 +663,12 @@ gcc_jit_struct_set_fields (gcc_jit_struct *struct_type,
     RETURN_IF_FAIL (fields, ctxt, loc, "NULL fields ptr");
   for (int i = 0; i < num_fields; i++)
     {
-      RETURN_IF_FAIL (fields[i], ctxt, loc, "NULL field ptr");
+      RETURN_IF_FAIL_PRINTF2 (
+       fields[i],
+       ctxt, loc,
+       "%s: NULL field ptr at index %i",
+       struct_type->get_debug_string (),
+       i);
       RETURN_IF_FAIL_PRINTF2 (
        NULL == fields[i]->get_container (),
        ctxt, loc,
@@ -1038,10 +1044,11 @@ gcc_jit_context_new_global (gcc_jit_context *ctxt,
     kind);
   RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type");
   RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name");
-  RETURN_NULL_IF_FAIL_PRINTF1 (
+  RETURN_NULL_IF_FAIL_PRINTF2 (
     type->has_known_size (),
     ctxt, loc,
-    "type has unknown size (type: %s)",
+    "unknown size for global \"%s\" (type: %s)",
+    name,
     type->get_debug_string ());
 
   return (gcc_jit_lvalue *)ctxt->new_global (loc, kind, type, name);
@@ -1839,10 +1846,11 @@ gcc_jit_function_new_local (gcc_jit_function *func,
                       "Cannot add locals to an imported function");
   RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type");
   RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name");
-  RETURN_NULL_IF_FAIL_PRINTF1 (
+  RETURN_NULL_IF_FAIL_PRINTF2 (
     type->has_known_size (),
     ctxt, loc,
-    "type has unknown size (type: %s)",
+    "unknown size for local \"%s\" (type: %s)",
+    name,
     type->get_debug_string ());
 
   return (gcc_jit_lvalue *)func->new_local (loc, type, name);
index f389f54cb066ab7c0fb81a8625de4e3de64c6983..0eb7a8ce606061667f0cd1613922823c479464c5 100644 (file)
@@ -1,3 +1,13 @@
+2015-07-08  David Malcolm  <dmalcolm@redhat.com>
+
+       PR jit/66783
+       * jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c
+       (verify_code): Update expected error message.
+       * jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c
+       (verify_code): Likewise.
+       * jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c
+       (verify_code): Likewise.
+
 2015-07-08  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/66793
index c4e144865cfe42b6ae9d99ca666a19724aa8e31b..fb4e54d6078dbc938b72ad4e738a15f60fc916e0 100644 (file)
@@ -27,5 +27,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
   /* Verify that the correct error message was emitted.  */
   CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt),
                      "gcc_jit_context_new_field:"
-                     " type has unknown size (type: struct opaque)");
+                     " unknown size for field \"f_opaque\" (type: struct opaque)");
 }
index 5f096afcff6b2b3d089469040f7f5df1d982ec3d..539b94ec3b359bb732680c13760c2c8d246cb62a 100644 (file)
@@ -28,5 +28,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
   /* Verify that the correct error message was emitted.  */
   CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt),
                      "gcc_jit_context_new_global:"
-                     " type has unknown size (type: struct opaque)");
+                     " unknown size for global \"instance_of_opaque\" (type: struct opaque)");
 }
index f263d6730705f4f12c1300e5a9ac881ee5e62f92..41fbee2026edf8e80625d640656d91a2fb449655 100644 (file)
@@ -38,5 +38,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
   /* Verify that the correct error message was emitted.  */
   CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt),
                      "gcc_jit_function_new_local:"
-                     " type has unknown size (type: struct opaque)");
+                     " unknown size for local \"i\" (type: struct opaque)");
 }