Commit 58c5ad40 by David Malcolm Committed by David Malcolm

PR jit/66783: improve error messages

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
parent cadb53a5
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> 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
* dummy-frontend.c: Adjust includes. * dummy-frontend.c: Adjust includes.
......
...@@ -543,10 +543,11 @@ gcc_jit_context_new_field (gcc_jit_context *ctxt, ...@@ -543,10 +543,11 @@ gcc_jit_context_new_field (gcc_jit_context *ctxt,
/* LOC can be NULL. */ /* LOC can be NULL. */
RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type"); RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type");
RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name"); RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name");
RETURN_NULL_IF_FAIL_PRINTF1 ( RETURN_NULL_IF_FAIL_PRINTF2 (
type->has_known_size (), type->has_known_size (),
ctxt, loc, ctxt, loc,
"type has unknown size (type: %s)", "unknown size for field \"%s\" (type: %s)",
name,
type->get_debug_string ()); type->get_debug_string ());
return (gcc_jit_field *)ctxt->new_field (loc, type, name); return (gcc_jit_field *)ctxt->new_field (loc, type, name);
...@@ -662,7 +663,12 @@ gcc_jit_struct_set_fields (gcc_jit_struct *struct_type, ...@@ -662,7 +663,12 @@ gcc_jit_struct_set_fields (gcc_jit_struct *struct_type,
RETURN_IF_FAIL (fields, ctxt, loc, "NULL fields ptr"); RETURN_IF_FAIL (fields, ctxt, loc, "NULL fields ptr");
for (int i = 0; i < num_fields; i++) 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 ( RETURN_IF_FAIL_PRINTF2 (
NULL == fields[i]->get_container (), NULL == fields[i]->get_container (),
ctxt, loc, ctxt, loc,
...@@ -1038,10 +1044,11 @@ gcc_jit_context_new_global (gcc_jit_context *ctxt, ...@@ -1038,10 +1044,11 @@ gcc_jit_context_new_global (gcc_jit_context *ctxt,
kind); kind);
RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type"); RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type");
RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name"); RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name");
RETURN_NULL_IF_FAIL_PRINTF1 ( RETURN_NULL_IF_FAIL_PRINTF2 (
type->has_known_size (), type->has_known_size (),
ctxt, loc, ctxt, loc,
"type has unknown size (type: %s)", "unknown size for global \"%s\" (type: %s)",
name,
type->get_debug_string ()); type->get_debug_string ());
return (gcc_jit_lvalue *)ctxt->new_global (loc, kind, type, name); return (gcc_jit_lvalue *)ctxt->new_global (loc, kind, type, name);
...@@ -1839,10 +1846,11 @@ gcc_jit_function_new_local (gcc_jit_function *func, ...@@ -1839,10 +1846,11 @@ gcc_jit_function_new_local (gcc_jit_function *func,
"Cannot add locals to an imported function"); "Cannot add locals to an imported function");
RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type"); RETURN_NULL_IF_FAIL (type, ctxt, loc, "NULL type");
RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name"); RETURN_NULL_IF_FAIL (name, ctxt, loc, "NULL name");
RETURN_NULL_IF_FAIL_PRINTF1 ( RETURN_NULL_IF_FAIL_PRINTF2 (
type->has_known_size (), type->has_known_size (),
ctxt, loc, ctxt, loc,
"type has unknown size (type: %s)", "unknown size for local \"%s\" (type: %s)",
name,
type->get_debug_string ()); type->get_debug_string ());
return (gcc_jit_lvalue *)func->new_local (loc, type, name); return (gcc_jit_lvalue *)func->new_local (loc, type, name);
......
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> 2015-07-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/66793 PR tree-optimization/66793
......
...@@ -27,5 +27,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result) ...@@ -27,5 +27,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
/* Verify that the correct error message was emitted. */ /* Verify that the correct error message was emitted. */
CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt), CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt),
"gcc_jit_context_new_field:" "gcc_jit_context_new_field:"
" type has unknown size (type: struct opaque)"); " unknown size for field \"f_opaque\" (type: struct opaque)");
} }
...@@ -28,5 +28,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result) ...@@ -28,5 +28,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
/* Verify that the correct error message was emitted. */ /* Verify that the correct error message was emitted. */
CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt), CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt),
"gcc_jit_context_new_global:" "gcc_jit_context_new_global:"
" type has unknown size (type: struct opaque)"); " unknown size for global \"instance_of_opaque\" (type: struct opaque)");
} }
...@@ -38,5 +38,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result) ...@@ -38,5 +38,5 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
/* Verify that the correct error message was emitted. */ /* Verify that the correct error message was emitted. */
CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt), CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt),
"gcc_jit_function_new_local:" "gcc_jit_function_new_local:"
" type has unknown size (type: struct opaque)"); " unknown size for local \"i\" (type: struct opaque)");
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment