]> git.pld-linux.org Git - packages/cross-gcc.git/blame - gcc49-pr38757.patch
- unconditional noarch subpackages
[packages/cross-gcc.git] / gcc49-pr38757.patch
CommitLineData
b5b0b447
ER
12009-03-18 Jakub Jelinek <jakub@redhat.com>
2
3 PR debug/38757
4 * langhooks.h (struct lang_hooks): Add source_language langhook.
5 * langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL.
6 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE.
7 * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
8 also for DW_LANG_{C,C99,ObjC}.
9 (gen_compile_unit_die): Use lang_hooks.source_language () to
10 determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
11c/
12 * c-lang.c (c_source_language): New function.
13 (LANG_HOOKS_SOURCE_LANGUAGE): Define.
14
15--- gcc/langhooks.h.jj 2011-01-03 12:53:05.125745450 +0100
16+++ gcc/langhooks.h 2011-01-04 17:59:43.166744926 +0100
17@@ -467,6 +467,10 @@ struct lang_hooks
18 gimplification. */
19 bool deep_unsharing;
20
21+ /* Return year of the source language standard version if the FE supports
22+ multiple versions of the standard. */
23+ int (*source_language) (void);
24+
25 /* Whenever you add entries here, make sure you adjust langhooks-def.h
26 and langhooks.c accordingly. */
27 };
28--- gcc/langhooks-def.h.jj 2011-01-03 12:53:05.000000000 +0100
29+++ gcc/langhooks-def.h 2011-01-04 18:00:44.858851030 +0100
30@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_
31 #define LANG_HOOKS_BLOCK_MAY_FALLTHRU hook_bool_const_tree_true
32 #define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false
33 #define LANG_HOOKS_DEEP_UNSHARING false
34+#define LANG_HOOKS_SOURCE_LANGUAGE NULL
35
36 /* Attribute hooks. */
37 #define LANG_HOOKS_ATTRIBUTE_TABLE NULL
38@@ -303,7 +304,8 @@ extern void lhd_end_section (void);
39 LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \
40 LANG_HOOKS_BLOCK_MAY_FALLTHRU, \
41 LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
42- LANG_HOOKS_DEEP_UNSHARING \
43+ LANG_HOOKS_DEEP_UNSHARING, \
44+ LANG_HOOKS_SOURCE_LANGUAGE \
45 }
46
47 #endif /* GCC_LANG_HOOKS_DEF_H */
48--- gcc/c/c-lang.c.jj 2011-01-03 12:53:05.376056936 +0100
49+++ gcc/c/c-lang.c 2011-01-04 17:59:43.167743798 +0100
50@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.
51
52 enum c_language_kind c_language = clk_c;
53
54+static int
55+c_source_language (void)
56+{
57+ return flag_isoc99 ? 1999 : 1989;
58+}
59+
60 /* Lang hooks common to C and ObjC are declared in c-objc-common.h;
61 consequently, there should be very few hooks below. */
62
63@@ -45,6 +51,8 @@ enum c_language_kind c_language = clk_c;
64 #define LANG_HOOKS_INIT c_objc_common_init
65 #undef LANG_HOOKS_INIT_TS
66 #define LANG_HOOKS_INIT_TS c_common_init_ts
67+#undef LANG_HOOKS_SOURCE_LANGUAGE
68+#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
69
70 /* Each front end provides its own lang hook initializer. */
71 struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
72--- gcc/dwarf2out.c.jj 2011-01-03 12:53:05.102056475 +0100
73+++ gcc/dwarf2out.c 2011-01-04 18:03:14.534151763 +0100
74@@ -16109,9 +16109,18 @@ add_bit_size_attribute (dw_die_ref die,
75 static inline void
76 add_prototyped_attribute (dw_die_ref die, tree func_type)
77 {
78- if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89
79- && prototype_p (func_type))
80- add_AT_flag (die, DW_AT_prototyped, 1);
81+ switch (get_AT_unsigned (comp_unit_die (), DW_AT_language))
82+ {
83+ case DW_LANG_C:
84+ case DW_LANG_C89:
85+ case DW_LANG_C99:
86+ case DW_LANG_ObjC:
87+ if (prototype_p (func_type))
88+ add_AT_flag (die, DW_AT_prototyped, 1);
89+ break;
90+ default:
91+ break;
92+ }
93 }
94
95 /* Add an 'abstract_origin' attribute below a given DIE. The DIE is found
96@@ -18915,6 +18924,10 @@ gen_compile_unit_die (const char *filena
97 if (strcmp (language_string, "GNU Go") == 0)
98 language = DW_LANG_Go;
99 }
100+ else if (strcmp (language_string, "GNU C") == 0
101+ && lang_hooks.source_language
102+ && lang_hooks.source_language () >= 1999)
103+ language = DW_LANG_C99;
104 }
105 /* Use a degraded Fortran setting in strict DWARF2 so is_fortran works. */
106 else if (strcmp (language_string, "GNU Fortran") == 0)
This page took 0.032178 seconds and 4 git commands to generate.