| Index: gcc/gcc/config/sol2-c.c
|
| diff --git a/gcc/gcc/config/sol2-c.c b/gcc/gcc/config/sol2-c.c
|
| index 69426a4596beeeacbb0e666d4c436e8cfe4a7a34..0b322d1f80fbbaa620848bc81f4f710df0f45481 100644
|
| --- a/gcc/gcc/config/sol2-c.c
|
| +++ b/gcc/gcc/config/sol2-c.c
|
| @@ -1,5 +1,5 @@
|
| /* Solaris support needed only by C/C++ frontends.
|
| - Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
|
| + Copyright (C) 2004, 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
|
| Contributed by CodeSourcery, LLC.
|
|
|
| This file is part of GCC.
|
| @@ -36,15 +36,15 @@ along with GCC; see the file COPYING3. If not see
|
| /* cmn_err only accepts "l" and "ll". */
|
| static const format_length_info cmn_err_length_specs[] =
|
| {
|
| - { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C89 },
|
| - { NULL, 0, 0, NULL, 0, 0 }
|
| + { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C89, 0 },
|
| + { NULL, FMT_LEN_none, STD_C89, NULL, FMT_LEN_none, STD_C89, 0 }
|
| };
|
|
|
| static const format_flag_spec cmn_err_flag_specs[] =
|
| {
|
| { 'w', 0, 0, N_("field width"), N_("field width in printf format"), STD_C89 },
|
| { 'L', 0, 0, N_("length modifier"), N_("length modifier in printf format"), STD_C89 },
|
| - { 0, 0, 0, NULL, NULL, 0 }
|
| + { 0, 0, 0, NULL, NULL, STD_C89 }
|
| };
|
|
|
|
|
| @@ -66,7 +66,7 @@ static const format_char_info cmn_err_char_table[] =
|
| { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "w", "c", NULL },
|
| { "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "w", "cR", NULL },
|
| { "b", 0, STD_C89, { T89_I, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "w", "", &bitfield_string_type },
|
| - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL }
|
| + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
|
| };
|
|
|
| const format_kind_info solaris_format_types[] = {
|
| @@ -170,9 +170,10 @@ solaris_pragma_init (cpp_reader *pfile ATTRIBUTE_UNUSED)
|
| tree decl = identifier_global_value (t);
|
| if (decl && DECL_P (decl))
|
| {
|
| - tree init_list = build_tree_list (get_identifier ("init"),
|
| - NULL);
|
| - tree attrs = tree_cons (get_identifier ("used"), NULL, init_list);
|
| + tree attrs = build_tree_list (get_identifier ("init"),
|
| + NULL);
|
| + TREE_USED (decl) = 1;
|
| + DECL_PRESERVE_P (decl) = 1;
|
| decl_attributes (&decl, attrs, 0);
|
| }
|
| else
|
| @@ -228,9 +229,10 @@ solaris_pragma_fini (cpp_reader *pfile ATTRIBUTE_UNUSED)
|
| tree decl = identifier_global_value (t);
|
| if (decl && DECL_P (decl))
|
| {
|
| - tree fini_list = build_tree_list (get_identifier ("fini"),
|
| - NULL);
|
| - tree attrs = tree_cons (get_identifier ("used"), NULL, fini_list);
|
| + tree attrs = build_tree_list (get_identifier ("fini"),
|
| + NULL);
|
| + TREE_USED (decl) = 1;
|
| + DECL_PRESERVE_P (decl) = 1;
|
| decl_attributes (&decl, attrs, 0);
|
| }
|
| else
|
|
|