aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-diagnostic-path.cc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2023-11-14 11:01:39 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2023-11-14 11:01:39 -0500
commit070944fdd6394c992885f33f5bde8a231d37fa7f (patch)
tree64c7c7f0674a3bc0084122c1cdb674812993d75d /gcc/tree-diagnostic-path.cc
parent4db820928065eccbeb725406450d826186582b9f (diff)
downloadgcc-070944fdd6394c992885f33f5bde8a231d37fa7f.zip
gcc-070944fdd6394c992885f33f5bde8a231d37fa7f.tar.gz
gcc-070944fdd6394c992885f33f5bde8a231d37fa7f.tar.bz2
json: reduce use of naked new in json-building code
No functional change intended. gcc/ChangeLog: * diagnostic-format-json.cc: Use type-specific "set_*" functions of json::object to avoid naked new of json value subclasses. * diagnostic-format-sarif.cc: Likewise. * gcov.cc: Likewise. * json.cc (object::set_string): New. (object::set_integer): New. (object::set_float): New. (object::set_bool): New. (selftest::test_writing_objects): Use object::set_string. * json.h (object::set_string): New decl. (object::set_integer): New decl. (object::set_float): New decl. (object::set_bool): New decl. * optinfo-emit-json.cc: Use type-specific "set_*" functions of json::object to avoid naked new of json value subclasses. * timevar.cc: Likewise. * tree-diagnostic-path.cc: Likewise. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/tree-diagnostic-path.cc')
-rw-r--r--gcc/tree-diagnostic-path.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/tree-diagnostic-path.cc b/gcc/tree-diagnostic-path.cc
index ee957cc..d2345c8 100644
--- a/gcc/tree-diagnostic-path.cc
+++ b/gcc/tree-diagnostic-path.cc
@@ -673,15 +673,14 @@ default_tree_make_json_for_path (diagnostic_context *context,
json_from_expanded_location (context,
event.get_location ()));
label_text event_text (event.get_desc (false));
- event_obj->set ("description", new json::string (event_text.get ()));
+ event_obj->set_string ("description", event_text.get ());
if (tree fndecl = event.get_fndecl ())
{
const char *function
= identifier_to_locale (lang_hooks.decl_printable_name (fndecl, 2));
- event_obj->set ("function", new json::string (function));
+ event_obj->set_string ("function", function);
}
- event_obj->set ("depth",
- new json::integer_number (event.get_stack_depth ()));
+ event_obj->set_integer ("depth", event.get_stack_depth ());
path_array->append (event_obj);
}
return path_array;