1
# DP: Fix PR target/60609, proposed patch
3
2014-04-02 Charles Baylis <charles.baylis@linaro.org>
6
* config/arm/arm.h (ASM_OUTPUT_CASE_END) Remove.
7
(LABEL_ALIGN_AFTER_BARRIER) Align barriers which occur after
10
2014-04-02 Charles Baylis <charles.baylis@linaro.org>
13
* g++.dg/torture/pr60609.C: New test.
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. */
21
-/* Make sure subsequent insns are aligned after a TBB. */
22
-#define ASM_OUTPUT_CASE_END(FILE, NUM, JUMPTABLE) \
25
- if (GET_MODE (PATTERN (JUMPTABLE)) == QImode) \
26
- ASM_OUTPUT_ALIGN (FILE, 1); \
29
+#define LABEL_ALIGN_AFTER_BARRIER(LABEL) \
30
+ (GET_CODE (PATTERN (prev_active_insn (LABEL))) == ADDR_DIFF_VEC \
33
#define ARM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
36
+++ b/src/gcc/testsuite/g++.dg/torture/pr60609.C
38
+/* { dg-do assemble } */
43
+class bad_alloc:exception
46
+class logic_error:exception
49
+class domain_error:logic_error
52
+class invalid_argument:logic_error
55
+class length_error:logic_error
58
+class overflow_error:exception
62
+template < class > class __gmp_expr;
63
+template <> class __gmp_expr < mpz_t >
68
+class PIP_Solution_Node;
69
+class internal_exception
71
+ ~internal_exception ();
73
+class not_an_integer:internal_exception
76
+class not_a_variable:internal_exception
79
+class not_an_optimization_mode:internal_exception
82
+class not_a_bounded_integer_type_width:internal_exception
85
+class not_a_bounded_integer_type_representation:internal_exception
88
+class not_a_bounded_integer_type_overflow:internal_exception
91
+class not_a_complexity_class:internal_exception
94
+class not_a_control_parameter_name:internal_exception
97
+class not_a_control_parameter_value:internal_exception
100
+class not_a_pip_problem_control_parameter_name:internal_exception
103
+class not_a_pip_problem_control_parameter_value:internal_exception
106
+class not_a_relation:internal_exception
109
+class ppl_handle_mismatch:internal_exception
112
+class timeout_exception
114
+ ~timeout_exception ();
116
+class deterministic_timeout_exception:timeout_exception
119
+void __assert_fail (const char *, const char *, int, int *)
120
+__attribute__ ((__noreturn__));
121
+void PL_get_pointer (void *);
122
+int Prolog_is_address ();
124
+Prolog_get_address (void **p1)
126
+ Prolog_is_address ()? static_cast <
127
+ void >(0) : __assert_fail ("Prolog_is_address", "./swi_cfli.hh", 0, 0);
128
+ PL_get_pointer (p1);
132
+class non_linear:internal_exception
135
+class not_unsigned_integer:internal_exception
138
+class not_universe_or_empty:internal_exception
141
+class not_a_nil_terminated_list:internal_exception
144
+class PPL_integer_out_of_range
146
+ __gmp_expr < mpz_t > n;
148
+void handle_exception ();
149
+template < typename T > T * term_to_handle (int, const char *)
151
+ if (Prolog_is_address ())
154
+ Prolog_get_address (&p);
155
+ return static_cast < T * >(0);
161
+ppl_new_MIP_Problem_from_MIP_Problem ()
164
+ term_to_handle < int >(0, "ppl_new_MIP_Problem_from_MIP_Problem/2");
172
+ppl_PIP_Tree_Node_parametric_values ()
176
+ PIP_Solution_Node *a = term_to_handle < PIP_Solution_Node > (0, 0);
180
+ catch (internal_exception &)
183
+ catch (not_unsigned_integer &)
185
+ handle_exception ();
187
+ catch (non_linear &)
189
+ handle_exception ();
191
+ catch (not_a_variable &)
193
+ handle_exception ();
195
+ catch (not_an_integer &)
197
+ handle_exception ();
199
+ catch (ppl_handle_mismatch &)
201
+ handle_exception ();
203
+ catch (not_an_optimization_mode &)
205
+ handle_exception ();
207
+ catch (not_a_complexity_class &)
209
+ handle_exception ();
211
+ catch (not_a_bounded_integer_type_width &)
213
+ handle_exception ();
215
+ catch (not_a_bounded_integer_type_representation &)
217
+ handle_exception ();
219
+ catch (not_a_bounded_integer_type_overflow &)
221
+ handle_exception ();
223
+ catch (not_a_control_parameter_name &)
225
+ handle_exception ();
227
+ catch (not_a_control_parameter_value &)
229
+ handle_exception ();
231
+ catch (not_a_pip_problem_control_parameter_name &)
233
+ handle_exception ();
235
+ catch (not_a_pip_problem_control_parameter_value &)
237
+ handle_exception ();
239
+ catch (not_universe_or_empty &)
241
+ handle_exception ();
243
+ catch (not_a_relation &)
245
+ handle_exception ();
247
+ catch (not_a_nil_terminated_list &)
249
+ handle_exception ();
251
+ catch (PPL_integer_out_of_range &)
253
+ handle_exception ();
257
+ } catch (timeout_exception &)
259
+ handle_exception ();
260
+ } catch (deterministic_timeout_exception &)
262
+ handle_exception ();
263
+ } catch (overflow_error &)
265
+ handle_exception ();
266
+ } catch (domain_error &)
268
+ handle_exception ();
269
+ } catch (length_error &)
271
+ handle_exception ();
272
+ } catch (invalid_argument &)
274
+ handle_exception ();
275
+ } catch (logic_error &)
277
+ handle_exception ();
278
+ } catch (bad_alloc &)
280
+ handle_exception ();
281
+ } catch (exception &)
283
+ handle_exception ();
286
+ handle_exception ();