GCC Middle and Back End API Reference
make-unique.h File Reference
#include <type_traits>
Include dependency graph for make-unique.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename T , typename... Args>
std::enable_if<!std::is_array< T >::value, std::unique_ptr< T > >::type make_unique (Args &&... args)
 

Function Documentation

◆ make_unique()

template<typename T , typename... Args>
std::enable_if<!std::is_array< T >::value, std::unique_ptr< T > >::type make_unique ( Args &&... args)
inline
Minimal implementation of make_unique for C++11 compatibility.
   Copyright (C) 2022-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
This header uses std::unique_ptr, but <memory> can't be directly
included due to issues with macros.  Hence <memory> must be included
from system.h by defining INCLUDE_MEMORY in any source file using
make-unique.h.   
Minimal implementation of make_unique for C++11 compatibility
(std::make_unique is C++14).   

Referenced by infinite_loop_diagnostic::add_final_event(), infinite_recursion_diagnostic::add_final_event(), infinite_recursion_diagnostic::add_function_entry_event(), sarif_invocation::add_notification_for_ice(), dump_context::begin_scope(), ana::exploded_graph::detect_infinite_loops(), ana::exploded_graph::detect_infinite_recursion(), diagnostic_output_format_init_sarif_file(), diagnostic_output_format_init_sarif_stderr(), diagnostic_output_format_init_sarif_stream(), dump_pretty_printer::custom_token_printer::emit_any_pending_textual_chunks(), sarif_code_flow::get_or_append_thread_flow(), json_from_expanded_location(), json_from_fixit_hint(), json_from_location_range(), json_from_metadata(), sarif_location::lazily_add_relationship_object(), sarif_builder::make_artifact_change_object(), sarif_builder::make_artifact_content_object(), sarif_builder::make_artifact_location_object(), sarif_builder::make_artifact_location_object_for_pwd(), sarif_builder::make_code_flow_object(), sarif_builder::make_driver_tool_component_object(), sarif_builder::make_fix_object(), make_item_for_dump_dec(), make_item_for_dump_generic_expr(), make_item_for_dump_gimple_expr(), make_item_for_dump_gimple_stmt(), make_item_for_dump_symtab_node(), make_json_for_path(), sarif_builder::make_location_object(), sarif_builder::make_location_object(), sarif_builder::make_location_object(), sarif_builder::make_locations_arr(), sarif_builder::make_message_object(), sarif_builder::make_message_object_for_diagram(), sarif_builder::make_multiformat_message_string(), sarif_builder::make_region_object_for_hint(), sarif_builder::make_replacement_object(), sarif_builder::make_reporting_descriptor_object_for_cwe_id(), sarif_builder::make_reporting_descriptor_object_for_warning(), sarif_builder::make_reporting_descriptor_reference_object_for_cwe_id(), sarif_builder::make_result_object(), sarif_builder::make_run_object(), make_sarif_logical_location_object(), sarif_builder::make_tool_component_reference_object_for_cwe(), sarif_builder::make_tool_object(), sarif_builder::make_top_level_object(), sarif_builder::maybe_make_artifact_content_object(), sarif_builder::maybe_make_artifact_content_object(), sarif_builder::maybe_make_cwe_taxonomy_object(), sarif_builder::maybe_make_kinds_array(), sarif_builder::maybe_make_physical_location_object(), sarif_builder::maybe_make_region_object(), sarif_builder::maybe_make_region_object_for_context(), sarif_builder::maybe_make_taxonomies_array(), sarif_result::on_diagram(), json_output_format::on_report_diagnostic(), sarif_artifact::populate_roles(), sarif_code_flow::sarif_code_flow(), sarif_invocation::sarif_invocation(), sarif_builder::set_any_logical_locs_arr(), starts_infinite_loop_p(), and dump_pretty_printer::stash_item().