* [HSA] Fix usage of an uninitialized memory
@ 2015-10-09 15:02 Martin Liška
0 siblings, 0 replies; only message in thread
From: Martin Liška @ 2015-10-09 15:02 UTC (permalink / raw)
To: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 136 bytes --]
Hello.
In the following patch, I fix usage of an uninitialized variable: hsa_cfun->decl.
Installed as revision 228659.
Thanks,
Martin
[-- Attachment #2: 0001-HSA-fix-usage-of-uninitialized-variable-in-hsa_funct.patch --]
[-- Type: text/x-patch, Size: 2904 bytes --]
From 7f85ed1c1d3f2fe6132117f58c84af33cb709689 Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Fri, 9 Oct 2015 15:06:46 +0200
Subject: [PATCH 1/7] HSA: fix usage of uninitialized variable in
hsa_function_representation
gcc/ChangeLog:
2015-10-09 Martin Liska <mliska@suse.cz>
* hsa-gen.c (hsa_function_representation::hsa_function_representation):
Change arguments of the constructor.
(hsa_init_data_for_cfun): Remove creation of hsa_cfun from
this function.
(generate_hsa): Move it here.
* hsa.h (hsa_function_representation::hsa_function_representation):
Declare.
---
gcc/hsa-gen.c | 11 +++++------
gcc/hsa.h | 2 +-
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/gcc/hsa-gen.c b/gcc/hsa-gen.c
index cf36882..a5099b6 100644
--- a/gcc/hsa-gen.c
+++ b/gcc/hsa-gen.c
@@ -202,7 +202,8 @@ static vec <hsa_op_immed*> hsa_list_operand_immed;
/* TODO: Move more initialization here. */
-hsa_function_representation::hsa_function_representation ()
+hsa_function_representation::hsa_function_representation
+ (tree fdecl, bool kernel_p): kern_p (kernel_p), decl (fdecl)
{
name = NULL;
input_args_count = 0;
@@ -216,7 +217,6 @@ hsa_function_representation::hsa_function_representation ()
readonly_variables = vNULL;
hbb_count = 0;
in_ssa = true; /* We start in SSA. */
- kern_p = false;
declaration_p = false;
called_functions = vNULL;
shadow_reg = NULL;
@@ -313,7 +313,6 @@ hsa_init_data_for_cfun ()
= new object_allocator<hsa_insn_queue> ("HSA queue instructions");
hsa_allocp_bb = new object_allocator<hsa_bb> ("HSA basic blocks");
hsa_allocp_symbols = new object_allocator<hsa_symbol> ("HSA symbols");
- hsa_cfun = new hsa_function_representation ();
/* The entry/exit blocks don't contain incoming code,
but the HSA generator might use them to put code into,
@@ -5121,14 +5120,14 @@ generate_hsa (bool kernel)
if (hsa_num_threads == NULL)
emit_hsa_module_variables ();
+ /* Initialize hsa_cfun. */
+ hsa_cfun = new hsa_function_representation (cfun->decl, kernel);
hsa_init_data_for_cfun ();
+
verify_function_arguments (cfun->decl);
if (hsa_seen_error ())
goto fail;
- hsa_cfun->decl = cfun->decl;
- hsa_cfun->kern_p = kernel;
-
host_decl = hsa_get_host_function (current_function_decl);
ssa_map.safe_grow_cleared (SSANAMES (cfun)->length ());
hsa_cfun->name = xstrdup (hsa_get_declaration_name (host_decl));
diff --git a/gcc/hsa.h b/gcc/hsa.h
index 98d70e0..fbc6684 100644
--- a/gcc/hsa.h
+++ b/gcc/hsa.h
@@ -908,7 +908,7 @@ hsa_free_symbol_hasher::equal (const value_type a, const compare_type b)
class hsa_function_representation
{
public:
- hsa_function_representation ();
+ hsa_function_representation (tree fdecl, bool kernel_p);
~hsa_function_representation ();
/* Builds a shadow register that is utilized to a kernel dispatch. */
--
2.5.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-10-09 15:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-09 15:02 [HSA] Fix usage of an uninitialized memory Martin Liška
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).