diff mbox

[committed] PR jit/66783: improve error messages

Message ID 1436367503-59581-1-git-send-email-dmalcolm@redhat.com
State New
Headers show

Commit Message

David Malcolm July 8, 2015, 2:58 p.m. UTC
Tested with "make check-jit"; jit.sum remains at 8494 passes.

Committed to trunk as r225557.

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.
---
 gcc/jit/libgccjit.c                                | 22 +++++++++++++++-------
 ...error-gcc_jit_context_new_field-opaque-struct.c |  2 +-
 ...rror-gcc_jit_context_new_global-opaque-struct.c |  2 +-
 ...rror-gcc_jit_function_new_local-opaque-struct.c |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)
diff mbox

Patch

diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
index 85d9f62..eee513f 100644
--- a/gcc/jit/libgccjit.c
+++ b/gcc/jit/libgccjit.c
@@ -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);
diff --git a/gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c b/gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c
index c4e1448..fb4e54d 100644
--- a/gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c
+++ b/gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c
@@ -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)");
 }
diff --git a/gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c b/gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c
index 5f096af..539b94e 100644
--- a/gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c
+++ b/gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c
@@ -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)");
 }
diff --git a/gcc/testsuite/jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c b/gcc/testsuite/jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c
index f263d67..41fbee2 100644
--- a/gcc/testsuite/jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c
+++ b/gcc/testsuite/jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c
@@ -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)");
 }