From: ebotcazou Date: Mon, 23 Nov 2009 18:55:50 +0000 (+0000) Subject: * gcc-interface/decl.c (gnat_to_gnu_entity) : Pass the list X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=f61f63980cc1a89af15fc90ddf2c09b98418fc2f * gcc-interface/decl.c (gnat_to_gnu_entity) : Pass the list of attributes when building the corresponding variable of a constant. * gcc-interface/utils.c (create_var_decl_1): Do not process attributes for constants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154458 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 02c9efe1386..08b9b7d6d88 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,4 +1,11 @@ 2009-11-23 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Pass the list + of attributes when building the corresponding variable of a constant. + * gcc-interface/utils.c (create_var_decl_1): Do not process attributes + for constants. + +2009-11-23 Eric Botcazou Laurent GUERBY PR ada/42153 diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index 9e643a3108b..ceb1f349ce8 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -1366,7 +1366,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) tree gnu_corr_var = create_true_var_decl (gnu_entity_name, gnu_ext_name, gnu_type, gnu_expr, true, Is_Public (gnat_entity), - !definition, static_p, NULL, + !definition, static_p, attr_list, gnat_entity); SET_DECL_CONST_CORRESPONDING_VAR (gnu_decl, gnu_corr_var); diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c index c79dd4e7a65..ae2bf744421 100644 --- a/gcc/ada/gcc-interface/utils.c +++ b/gcc/ada/gcc-interface/utils.c @@ -1404,10 +1404,12 @@ create_var_decl_1 (tree var_name, tree asm_name, tree type, tree var_init, != null_pointer_node) DECL_IGNORED_P (var_decl) = 1; - if (asm_name && VAR_OR_FUNCTION_DECL_P (var_decl)) - SET_DECL_ASSEMBLER_NAME (var_decl, asm_name); - - process_attributes (var_decl, attr_list); + if (TREE_CODE (var_decl) == VAR_DECL) + { + if (asm_name) + SET_DECL_ASSEMBLER_NAME (var_decl, asm_name); + process_attributes (var_decl, attr_list); + } /* Add this decl to the current binding level. */ gnat_pushdecl (var_decl, gnat_node); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0a2519cb704..70ae905122b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-11-23 Eric Botcazou + + * gnat.dg/specs/weak1.ads: New test. + 2009-11-23 Steve Ellcey * gcc.dg/debug/dwarf2/inline2.c: Modify scan. diff --git a/gcc/testsuite/gnat.dg/specs/weak1.ads b/gcc/testsuite/gnat.dg/specs/weak1.ads new file mode 100644 index 00000000000..82cddc09ac2 --- /dev/null +++ b/gcc/testsuite/gnat.dg/specs/weak1.ads @@ -0,0 +1,7 @@ +package Weak1 is + + Myconst : constant Integer := 1234; + pragma Export (C, Myconst, "myconst"); + pragma Weak_External (Myconst); + +end Weak1;