aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/gcc-interface/utils.c3
-rw-r--r--gcc/asan.c25
-rw-r--r--gcc/c/ChangeLog6
-rw-r--r--gcc/c/c-decl.c3
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/decl.c3
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/f95-lang.c4
10 files changed, 64 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c2962bb..6c41705 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
+
+ PR lto/79061
+ * asan.c (get_translation_unit_decl): New function.
+ (asan_add_global): Extract modules file name from globals
+ TRANSLATION_UNIT_DECL name.
+
2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
PR target/77439
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 674ca6f..8f394b0 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
+
+ PR lto/79061
+ * gcc-interface/utils.c (get_global_context): Pass main_input_filename
+ to build_translation_unit_decl.
+
2017-01-23 Javier Miranda <miranda@adacore.com>
* sem_util.adb (New_Copy_Tree): Code cleanup:
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index 0ae381f..3cda631 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -666,7 +666,8 @@ get_global_context (void)
{
if (!global_context)
{
- global_context = build_translation_unit_decl (NULL_TREE);
+ global_context
+ = build_translation_unit_decl (get_identifier (main_input_filename));
debug_hooks->register_main_translation_unit (global_context);
}
diff --git a/gcc/asan.c b/gcc/asan.c
index 486ebfd..9098121 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -2373,6 +2373,22 @@ asan_needs_odr_indicator_p (tree decl)
&& TREE_PUBLIC (decl));
}
+/* For given DECL return its corresponding TRANSLATION_UNIT_DECL. */
+
+static const_tree
+get_translation_unit_decl (tree decl)
+{
+ const_tree context = decl;
+ while (context && TREE_CODE (context) != TRANSLATION_UNIT_DECL)
+ {
+ if (TREE_CODE (context) == BLOCK)
+ context = BLOCK_SUPERCONTEXT (context);
+ else
+ context = get_containing_scope (context);
+ }
+ return context;
+}
+
/* Append description of a single global DECL into vector V.
TYPE is __asan_global struct type as returned by asan_global_struct. */
@@ -2392,7 +2408,14 @@ asan_add_global (tree decl, tree type, vec<constructor_elt, va_gc> *v)
pp_string (&asan_pp, "<unknown>");
str_cst = asan_pp_string (&asan_pp);
- pp_string (&module_name_pp, main_input_filename);
+ const char *filename = main_input_filename;
+ if (in_lto_p)
+ {
+ const_tree translation_unit_decl = get_translation_unit_decl (decl);
+ if (translation_unit_decl && DECL_NAME (translation_unit_decl) != NULL)
+ filename = IDENTIFIER_POINTER (DECL_NAME (translation_unit_decl));
+ }
+ pp_string (&module_name_pp, filename);
module_name_cst = asan_pp_string (&module_name_pp);
if (asan_needs_local_alias (decl))
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index b17c179..16fb6f8 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,9 @@
+2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
+
+ PR lto/79061
+ * c-decl.c (pop_scope): Pass main_input_filename to
+ build_translation_unit_decl.
+
2017-01-24 David Malcolm <dmalcolm@redhat.com>
* c-parser.c: Include "read-rtl-function.h" and
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 2f91e70..32edacc 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -1177,7 +1177,8 @@ pop_scope (void)
context = current_function_decl;
else if (scope == file_scope)
{
- tree file_decl = build_translation_unit_decl (NULL_TREE);
+ tree file_decl
+ = build_translation_unit_decl (get_identifier (main_input_filename));
context = file_decl;
debug_hooks->register_main_translation_unit (file_decl);
}
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 05c6b60..47eaa55 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
+
+ PR lto/79061
+ * decl.c (cxx_init_decl_processing): Pass main_input_filename
+ to build_translation_unit_decl.
+
2017-01-24 Jakub Jelinek <jakub@redhat.com>
PR c++/79205
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 792ebcc..af74dcd 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -4071,7 +4071,8 @@ cxx_init_decl_processing (void)
gcc_assert (global_namespace == NULL_TREE);
global_namespace = build_lang_decl (NAMESPACE_DECL, global_scope_name,
void_type_node);
- DECL_CONTEXT (global_namespace) = build_translation_unit_decl (NULL_TREE);
+ DECL_CONTEXT (global_namespace)
+ = build_translation_unit_decl (get_identifier (main_input_filename));
debug_hooks->register_main_translation_unit
(DECL_CONTEXT (global_namespace));
TREE_PUBLIC (global_namespace) = 1;
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index d6ebd79..ff47dc4 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
+
+ PR lto/79061
+ * f95-lang.c (gfc_create_decls): Include stringpool.h.
+ Pass main_input_filename to build_translation_unit_decl.
+
2017-01-23 Thomas Koenig <tkoenig@netcologne.de>
* arith.c (arith_power): If simplifying integer power expression
diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c
index 98ef837..44bd8dc 100644
--- a/gcc/fortran/f95-lang.c
+++ b/gcc/fortran/f95-lang.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree.h"
#include "gfortran.h"
#include "trans.h"
+#include "stringpool.h"
#include "diagnostic.h" /* For errorcount/warningcount */
#include "langhooks.h"
#include "langhooks-def.h"
@@ -190,7 +191,8 @@ gfc_create_decls (void)
gfc_init_constants ();
/* Build our translation-unit decl. */
- current_translation_unit = build_translation_unit_decl (NULL_TREE);
+ current_translation_unit
+ = build_translation_unit_decl (get_identifier (main_input_filename));
debug_hooks->register_main_translation_unit (current_translation_unit);
}