~ubuntu-branches/debian/sid/gcc-4.8/sid

« back to all changes in this revision

Viewing changes to .svn/pristine/4d/4d85a67dfe8bbc3147539cd8cad621ac5dd154c5.svn-base

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-12-19 19:48:34 UTC
  • Revision ID: package-import@ubuntu.com-20141219194834-4dz1q7rrn5pad823
Tags: 4.8.4-1
* GCC 4.8.4 release.
  - Fix PR target/61407 (darwin), PR middle-end/58624 (ice),
    PR sanitizer/64265 (wrong code).
* Require recent binutils to pass go test failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# DP: Fix PR target/60609, proposed patch
 
2
 
 
3
2014-04-02  Charles Baylis  <charles.baylis@linaro.org>
 
4
 
 
5
        PR target/60609
 
6
        * config/arm/arm.h (ASM_OUTPUT_CASE_END) Remove.
 
7
        (LABEL_ALIGN_AFTER_BARRIER) Align barriers which occur after
 
8
        ADDR_DIFF_VEC.
 
9
 
 
10
2014-04-02  Charles Baylis  <charles.baylis@linaro.org>
 
11
 
 
12
        PR target/60609
 
13
        * g++.dg/torture/pr60609.C: New test.
 
14
 
 
15
--- a/src/gcc/config/arm/arm.h
 
16
+++ b/src/gcc/config/arm/arm.h
 
17
@@ -2194,14 +2194,9 @@ extern int making_const_table;
 
18
 #undef ASM_OUTPUT_BEFORE_CASE_LABEL
 
19
 #define ASM_OUTPUT_BEFORE_CASE_LABEL(FILE, PREFIX, NUM, TABLE) /* Empty.  */
 
20
 
 
21
-/* Make sure subsequent insns are aligned after a TBB.  */
 
22
-#define ASM_OUTPUT_CASE_END(FILE, NUM, JUMPTABLE)      \
 
23
-  do                                                   \
 
24
-    {                                                  \
 
25
-      if (GET_MODE (PATTERN (JUMPTABLE)) == QImode)    \
 
26
-       ASM_OUTPUT_ALIGN (FILE, 1);                     \
 
27
-    }                                                  \
 
28
-  while (0)
 
29
+#define LABEL_ALIGN_AFTER_BARRIER(LABEL)                \
 
30
+   (GET_CODE (PATTERN (prev_active_insn (LABEL))) == ADDR_DIFF_VEC \
 
31
+   ? 1 : 0)
 
32
 
 
33
 #define ARM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL)  \
 
34
   do                                                   \
 
35
--- /dev/null
 
36
+++ b/src/gcc/testsuite/g++.dg/torture/pr60609.C
 
37
@@ -0,0 +1,252 @@
 
38
+/* { dg-do assemble } */
 
39
+
 
40
+class exception
 
41
+{
 
42
+};
 
43
+class bad_alloc:exception
 
44
+{
 
45
+};
 
46
+class logic_error:exception
 
47
+{
 
48
+};
 
49
+class domain_error:logic_error
 
50
+{
 
51
+};
 
52
+class invalid_argument:logic_error
 
53
+{
 
54
+};
 
55
+class length_error:logic_error
 
56
+{
 
57
+};
 
58
+class overflow_error:exception
 
59
+{
 
60
+};
 
61
+typedef int mpz_t[];
 
62
+template < class > class __gmp_expr;
 
63
+template <> class __gmp_expr < mpz_t >
 
64
+{
 
65
+    ~__gmp_expr ();
 
66
+};
 
67
+
 
68
+class PIP_Solution_Node;
 
69
+class internal_exception
 
70
+{
 
71
+    ~internal_exception ();
 
72
+};
 
73
+class not_an_integer:internal_exception
 
74
+{
 
75
+};
 
76
+class not_a_variable:internal_exception
 
77
+{
 
78
+};
 
79
+class not_an_optimization_mode:internal_exception
 
80
+{
 
81
+};
 
82
+class not_a_bounded_integer_type_width:internal_exception
 
83
+{
 
84
+};
 
85
+class not_a_bounded_integer_type_representation:internal_exception
 
86
+{
 
87
+};
 
88
+class not_a_bounded_integer_type_overflow:internal_exception
 
89
+{
 
90
+};
 
91
+class not_a_complexity_class:internal_exception
 
92
+{
 
93
+};
 
94
+class not_a_control_parameter_name:internal_exception
 
95
+{
 
96
+};
 
97
+class not_a_control_parameter_value:internal_exception
 
98
+{
 
99
+};
 
100
+class not_a_pip_problem_control_parameter_name:internal_exception
 
101
+{
 
102
+};
 
103
+class not_a_pip_problem_control_parameter_value:internal_exception
 
104
+{
 
105
+};
 
106
+class not_a_relation:internal_exception
 
107
+{
 
108
+};
 
109
+class ppl_handle_mismatch:internal_exception
 
110
+{
 
111
+};
 
112
+class timeout_exception
 
113
+{
 
114
+    ~timeout_exception ();
 
115
+};
 
116
+class deterministic_timeout_exception:timeout_exception
 
117
+{
 
118
+};
 
119
+void __assert_fail (const char *, const char *, int, int *)
 
120
+__attribute__ ((__noreturn__));
 
121
+void PL_get_pointer (void *);
 
122
+int Prolog_is_address ();
 
123
+inline int
 
124
+Prolog_get_address (void **p1)
 
125
+{
 
126
+    Prolog_is_address ()? static_cast <
 
127
+    void >(0) : __assert_fail ("Prolog_is_address", "./swi_cfli.hh", 0, 0);
 
128
+    PL_get_pointer (p1);
 
129
+    return 0;
 
130
+}
 
131
+
 
132
+class non_linear:internal_exception
 
133
+{
 
134
+};
 
135
+class not_unsigned_integer:internal_exception
 
136
+{
 
137
+};
 
138
+class not_universe_or_empty:internal_exception
 
139
+{
 
140
+};
 
141
+class not_a_nil_terminated_list:internal_exception
 
142
+{
 
143
+};
 
144
+class PPL_integer_out_of_range
 
145
+{
 
146
+    __gmp_expr < mpz_t > n;
 
147
+};
 
148
+void handle_exception ();
 
149
+template < typename T > T * term_to_handle (int, const char *)
 
150
+{
 
151
+    if (Prolog_is_address ())
 
152
+    {
 
153
+        void *p;
 
154
+        Prolog_get_address (&p);
 
155
+        return static_cast < T * >(0);
 
156
+    }
 
157
+    throw;
 
158
+}
 
159
+
 
160
+void
 
161
+ppl_new_MIP_Problem_from_MIP_Problem ()
 
162
+try
 
163
+{
 
164
+    term_to_handle < int >(0, "ppl_new_MIP_Problem_from_MIP_Problem/2");
 
165
+}
 
166
+
 
167
+catch (exception &)
 
168
+{
 
169
+}
 
170
+
 
171
+int
 
172
+ppl_PIP_Tree_Node_parametric_values ()
 
173
+{
 
174
+    try
 
175
+    {
 
176
+        PIP_Solution_Node *a = term_to_handle < PIP_Solution_Node > (0, 0);
 
177
+       (void)a;
 
178
+        return 1;
 
179
+    }
 
180
+    catch (internal_exception &)
 
181
+    {
 
182
+    }
 
183
+    catch (not_unsigned_integer &)
 
184
+    {
 
185
+        handle_exception ();
 
186
+    }
 
187
+    catch (non_linear &)
 
188
+    {
 
189
+        handle_exception ();
 
190
+    }
 
191
+    catch (not_a_variable &)
 
192
+    {
 
193
+        handle_exception ();
 
194
+    }
 
195
+    catch (not_an_integer &)
 
196
+    {
 
197
+        handle_exception ();
 
198
+    }
 
199
+    catch (ppl_handle_mismatch &)
 
200
+    {
 
201
+        handle_exception ();
 
202
+    }
 
203
+    catch (not_an_optimization_mode &)
 
204
+    {
 
205
+        handle_exception ();
 
206
+    }
 
207
+    catch (not_a_complexity_class &)
 
208
+    {
 
209
+        handle_exception ();
 
210
+    }
 
211
+    catch (not_a_bounded_integer_type_width &)
 
212
+    {
 
213
+        handle_exception ();
 
214
+    }
 
215
+    catch (not_a_bounded_integer_type_representation &)
 
216
+    {
 
217
+        handle_exception ();
 
218
+    }
 
219
+    catch (not_a_bounded_integer_type_overflow &)
 
220
+    {
 
221
+        handle_exception ();
 
222
+    }
 
223
+    catch (not_a_control_parameter_name &)
 
224
+    {
 
225
+        handle_exception ();
 
226
+    }
 
227
+    catch (not_a_control_parameter_value &)
 
228
+    {
 
229
+        handle_exception ();
 
230
+    }
 
231
+    catch (not_a_pip_problem_control_parameter_name &)
 
232
+    {
 
233
+        handle_exception ();
 
234
+    }
 
235
+    catch (not_a_pip_problem_control_parameter_value &)
 
236
+    {
 
237
+        handle_exception ();
 
238
+    }
 
239
+    catch (not_universe_or_empty &)
 
240
+    {
 
241
+        handle_exception ();
 
242
+    }
 
243
+    catch (not_a_relation &)
 
244
+    {
 
245
+        handle_exception ();
 
246
+    }
 
247
+    catch (not_a_nil_terminated_list &)
 
248
+    {
 
249
+        handle_exception ();
 
250
+    }
 
251
+    catch (PPL_integer_out_of_range &)
 
252
+    {
 
253
+        handle_exception ();
 
254
+    }
 
255
+    catch (int &)
 
256
+    {
 
257
+    } catch (timeout_exception &)
 
258
+    {
 
259
+        handle_exception ();
 
260
+    } catch (deterministic_timeout_exception &)
 
261
+    {
 
262
+        handle_exception ();
 
263
+    } catch (overflow_error &)
 
264
+    {
 
265
+        handle_exception ();
 
266
+    } catch (domain_error &)
 
267
+    {
 
268
+        handle_exception ();
 
269
+    } catch (length_error &)
 
270
+    {
 
271
+        handle_exception ();
 
272
+    } catch (invalid_argument &)
 
273
+    {
 
274
+        handle_exception ();
 
275
+    } catch (logic_error &)
 
276
+    {
 
277
+        handle_exception ();
 
278
+    } catch (bad_alloc &)
 
279
+    {
 
280
+        handle_exception ();
 
281
+    } catch (exception &)
 
282
+    {
 
283
+        handle_exception ();
 
284
+    } catch ( ...)
 
285
+    {
 
286
+        handle_exception ();
 
287
+    }
 
288
+    return 0;
 
289
+}