Author: dgilmore
Date: 2010-11-15 19:18:31 -0500 (Mon, 15 Nov 2010)
New Revision: 3401
Modified:
trunk/osprey/crayf90/fe90/s_utils.c
trunk/osprey/crayf90/fe90/sytb.c
trunk/osprey/crayf90/fe90/sytb.h
Log:
Fix for bug 677, compiler temp names used for data initialization
need to to have their own namespace, since they can be exported
though module files.
Reviewed by Jian-Xin Lai and approved by Michael Lai.
Modified: trunk/osprey/crayf90/fe90/s_utils.c
===================================================================
--- trunk/osprey/crayf90/fe90/s_utils.c 2010-11-15 22:58:07 UTC (rev 3400)
+++ trunk/osprey/crayf90/fe90/s_utils.c 2010-11-16 00:18:31 UTC (rev 3401)
@@ -1,4 +1,7 @@
/*
+ * Copyright (C) 2010 Advanced Micro Devices, Inc. All Rights Reserved.
+ */
+/*
* Copyright (C) 2006. QLogic Corporation. All Rights Reserved.
*/
@@ -8206,6 +8209,8 @@
int list_idx;
int save_curr_stmt_sh_idx;
int sub_idx;
+ char *endptr;
+ int tmpnum;
TRACE (Func_Entry, "insert_init_stmt_for_tmp", NULL);
@@ -8323,6 +8328,25 @@
ATD_TMP_INIT_NOT_DONE(tmp_idx) = FALSE;
+ /* Fix for bug 677, compiler temp names used for data initialization
+ * need to to have their own namespace, since they can be exported
+ * though module files.
+ */
+ if (strncmp(AT_OBJ_NAME_PTR(tmp_idx), compiler_tmp_prefix,
COMPILER_TMP_PREFIX_LEN) == 0
+ && strtod(AT_OBJ_NAME_PTR(tmp_idx) + COMPILER_TMP_PREFIX_LEN, &endptr)
+ && *endptr == 0) {
+ char buf[1000];
+ int length;
+ int np_idx;
+
+ sprintf(buf, "%s%s", AT_OBJ_NAME_PTR(tmp_idx),
+ SB_NAME_PTR(ATD_STOR_BLK_IDX(tmp_idx)));
+ length = strlen(buf);
+ NTR_NAME_POOL((long *)buf, length, np_idx);
+ AT_NAME_LEN(tmp_idx) = length;
+ AT_NAME_IDX(tmp_idx) = np_idx;
+ }
+
TRACE (Func_Exit, "insert_init_stmt_for_tmp", NULL);
return;
Modified: trunk/osprey/crayf90/fe90/sytb.c
===================================================================
--- trunk/osprey/crayf90/fe90/sytb.c 2010-11-15 22:58:07 UTC (rev 3400)
+++ trunk/osprey/crayf90/fe90/sytb.c 2010-11-16 00:18:31 UTC (rev 3401)
@@ -1,4 +1,7 @@
/*
+ * Copyright (C) 2010 Advanced Micro Devices, Inc. All Rights Reserved.
+ */
+/*
* Copyright (C) 2006. QLogic Corporation. All Rights Reserved.
*/
@@ -4267,6 +4270,9 @@
|* *|
\******************************************************************************/
+
+char compiler_tmp_prefix[] = "t$";
+
int gen_compiler_tmp (int tmp_line,
int tmp_column,
task_scope_type scope,
@@ -4287,7 +4293,7 @@
CREATE_ID(name, " ", 1);
# if defined(_HOST_OS_UNICOS) || defined(_HOST_OS_MAX)
- length = sprintf(name.string, "t$%d", curr_tmp);
+ length = sprintf(name.string, "%s%d", compiler_tmp_prefix, curr_tmp);
# else
sprintf(name.string, "t$%d", curr_tmp);
length = strlen(name.string);
Modified: trunk/osprey/crayf90/fe90/sytb.h
===================================================================
--- trunk/osprey/crayf90/fe90/sytb.h 2010-11-15 22:58:07 UTC (rev 3400)
+++ trunk/osprey/crayf90/fe90/sytb.h 2010-11-16 00:18:31 UTC (rev 3401)
@@ -1,4 +1,7 @@
/*
+ * Copyright (C) 2010 Advanced Micro Devices, Inc. All Rights Reserved.
+ */
+/*
* Copyright (C) 2008. PathScale, LLC. All Rights Reserved.
*/
/*
@@ -1809,6 +1812,9 @@
extern char *pgm_unit_str[];
+#define COMPILER_TMP_PREFIX_LEN 2
+extern char compiler_tmp_prefix[];
+
# ifdef _DEBUG
extern void print_so(size_offset_type);
# endif
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
Open64-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel