2
0
mirror of git://gcc.gnu.org/git/gcc.git synced 2025-03-23 14:11:05 +08:00

re PR target/60609 (Error: value of 256 too large for field of 1 bytes at 68242)

2014-04-07  Charles Baylis  <charles.baylis@linaro.org>

        PR target/60609
        * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
        (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
        ADDR_DIFF_VEC.


2014-04-07  Charles Baylis  <charles.baylis@linaro.org>

        PR target/60609
        * g++.dg/torture/pr60609.C: New test.

From-SVN: r209191
This commit is contained in:
Charles Baylis 2014-04-07 15:07:33 +00:00 committed by Yvan Roux
parent d6adff07f1
commit e75c161776
4 changed files with 267 additions and 8 deletions
gcc
ChangeLog
config/arm
testsuite
ChangeLog
g++.dg/torture

@ -1,3 +1,10 @@
2014-04-07 Charles Baylis <charles.baylis@linaro.org>
PR target/60609
* config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
(LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
ADDR_DIFF_VEC.
2014-04-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/60766

@ -2194,14 +2194,9 @@ extern int making_const_table;
#undef ASM_OUTPUT_BEFORE_CASE_LABEL
#define ASM_OUTPUT_BEFORE_CASE_LABEL(FILE, PREFIX, NUM, TABLE) /* Empty. */
/* Make sure subsequent insns are aligned after a TBB. */
#define ASM_OUTPUT_CASE_END(FILE, NUM, JUMPTABLE) \
do \
{ \
if (GET_MODE (PATTERN (JUMPTABLE)) == QImode) \
ASM_OUTPUT_ALIGN (FILE, 1); \
} \
while (0)
#define LABEL_ALIGN_AFTER_BARRIER(LABEL) \
(GET_CODE (PATTERN (prev_active_insn (LABEL))) == ADDR_DIFF_VEC \
? 1 : 0)
#define ARM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do \

@ -1,3 +1,8 @@
2014-04-07 Charles Baylis <charles.baylis@linaro.org>
PR target/60609
* g++.dg/torture/pr60609.C: New test.
2014-04-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/60766

@ -0,0 +1,252 @@
/* { dg-do assemble } */
class exception
{
};
class bad_alloc:exception
{
};
class logic_error:exception
{
};
class domain_error:logic_error
{
};
class invalid_argument:logic_error
{
};
class length_error:logic_error
{
};
class overflow_error:exception
{
};
typedef int mpz_t[];
template < class > class __gmp_expr;
template <> class __gmp_expr < mpz_t >
{
~__gmp_expr ();
};
class PIP_Solution_Node;
class internal_exception
{
~internal_exception ();
};
class not_an_integer:internal_exception
{
};
class not_a_variable:internal_exception
{
};
class not_an_optimization_mode:internal_exception
{
};
class not_a_bounded_integer_type_width:internal_exception
{
};
class not_a_bounded_integer_type_representation:internal_exception
{
};
class not_a_bounded_integer_type_overflow:internal_exception
{
};
class not_a_complexity_class:internal_exception
{
};
class not_a_control_parameter_name:internal_exception
{
};
class not_a_control_parameter_value:internal_exception
{
};
class not_a_pip_problem_control_parameter_name:internal_exception
{
};
class not_a_pip_problem_control_parameter_value:internal_exception
{
};
class not_a_relation:internal_exception
{
};
class ppl_handle_mismatch:internal_exception
{
};
class timeout_exception
{
~timeout_exception ();
};
class deterministic_timeout_exception:timeout_exception
{
};
void __assert_fail (const char *, const char *, int, int *)
__attribute__ ((__noreturn__));
void PL_get_pointer (void *);
int Prolog_is_address ();
inline int
Prolog_get_address (void **p1)
{
Prolog_is_address ()? static_cast <
void >(0) : __assert_fail ("Prolog_is_address", "./swi_cfli.hh", 0, 0);
PL_get_pointer (p1);
return 0;
}
class non_linear:internal_exception
{
};
class not_unsigned_integer:internal_exception
{
};
class not_universe_or_empty:internal_exception
{
};
class not_a_nil_terminated_list:internal_exception
{
};
class PPL_integer_out_of_range
{
__gmp_expr < mpz_t > n;
};
void handle_exception ();
template < typename T > T * term_to_handle (int, const char *)
{
if (Prolog_is_address ())
{
void *p;
Prolog_get_address (&p);
return static_cast < T * >(0);
}
throw;
}
void
ppl_new_MIP_Problem_from_MIP_Problem ()
try
{
term_to_handle < int >(0, "ppl_new_MIP_Problem_from_MIP_Problem/2");
}
catch (exception &)
{
}
int
ppl_PIP_Tree_Node_parametric_values ()
{
try
{
PIP_Solution_Node *a = term_to_handle < PIP_Solution_Node > (0, 0);
(void)a;
return 1;
}
catch (internal_exception &)
{
}
catch (not_unsigned_integer &)
{
handle_exception ();
}
catch (non_linear &)
{
handle_exception ();
}
catch (not_a_variable &)
{
handle_exception ();
}
catch (not_an_integer &)
{
handle_exception ();
}
catch (ppl_handle_mismatch &)
{
handle_exception ();
}
catch (not_an_optimization_mode &)
{
handle_exception ();
}
catch (not_a_complexity_class &)
{
handle_exception ();
}
catch (not_a_bounded_integer_type_width &)
{
handle_exception ();
}
catch (not_a_bounded_integer_type_representation &)
{
handle_exception ();
}
catch (not_a_bounded_integer_type_overflow &)
{
handle_exception ();
}
catch (not_a_control_parameter_name &)
{
handle_exception ();
}
catch (not_a_control_parameter_value &)
{
handle_exception ();
}
catch (not_a_pip_problem_control_parameter_name &)
{
handle_exception ();
}
catch (not_a_pip_problem_control_parameter_value &)
{
handle_exception ();
}
catch (not_universe_or_empty &)
{
handle_exception ();
}
catch (not_a_relation &)
{
handle_exception ();
}
catch (not_a_nil_terminated_list &)
{
handle_exception ();
}
catch (PPL_integer_out_of_range &)
{
handle_exception ();
}
catch (int &)
{
} catch (timeout_exception &)
{
handle_exception ();
} catch (deterministic_timeout_exception &)
{
handle_exception ();
} catch (overflow_error &)
{
handle_exception ();
} catch (domain_error &)
{
handle_exception ();
} catch (length_error &)
{
handle_exception ();
} catch (invalid_argument &)
{
handle_exception ();
} catch (logic_error &)
{
handle_exception ();
} catch (bad_alloc &)
{
handle_exception ();
} catch (exception &)
{
handle_exception ();
} catch ( ...)
{
handle_exception ();
}
return 0;
}