re PR other/89342 (ICE in maybe_default_option, at opts.c:347)
PR other/89342 * optc-save-gen.awk: Handle optimize_fast like optimize_size or optimize_debug. * opth-gen.awk: Likewise. * gcc.dg/pr89342.c: New test. From-SVN: r268924
This commit is contained in:
parent
8a9f2a6bbd
commit
f521d9d8ad
5 changed files with 34 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
|||
2019-02-15 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR other/89342
|
||||
* optc-save-gen.awk: Handle optimize_fast like optimize_size or
|
||||
optimize_debug.
|
||||
* opth-gen.awk: Likewise.
|
||||
|
||||
2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
|
||||
|
|
|
@ -81,7 +81,7 @@ print "void";
|
|||
print "cl_optimization_save (struct cl_optimization *ptr, struct gcc_options *opts)";
|
||||
print "{";
|
||||
|
||||
n_opt_char = 3;
|
||||
n_opt_char = 4;
|
||||
n_opt_short = 0;
|
||||
n_opt_int = 0;
|
||||
n_opt_enum = 0;
|
||||
|
@ -90,9 +90,11 @@ n_opt_other = 0;
|
|||
var_opt_char[0] = "optimize";
|
||||
var_opt_char[1] = "optimize_size";
|
||||
var_opt_char[2] = "optimize_debug";
|
||||
var_opt_char[3] = "optimize_fast";
|
||||
var_opt_range["optimize"] = "0, 255";
|
||||
var_opt_range["optimize_size"] = "0, 1";
|
||||
var_opt_range["optimize_debug"] = "0, 1";
|
||||
var_opt_range["optimize_fast"] = "0, 1";
|
||||
|
||||
# Sort by size to mimic how the structure is laid out to be friendlier to the
|
||||
# cache.
|
||||
|
@ -767,16 +769,19 @@ for (i = 0; i < n_target_val; i++) {
|
|||
|
||||
print "}";
|
||||
|
||||
n_opt_val = 3;
|
||||
n_opt_val = 4;
|
||||
var_opt_val[0] = "x_optimize"
|
||||
var_opt_val_type[0] = "char "
|
||||
var_opt_hash[0] = 1;
|
||||
var_opt_val[1] = "x_optimize_size"
|
||||
var_opt_val_type[1] = "char "
|
||||
var_opt_hash[1] = 1;
|
||||
var_opt_val[2] = "x_optimize_debug"
|
||||
var_opt_hash[2] = 1;
|
||||
var_opt_val_type[1] = "char "
|
||||
var_opt_val_type[2] = "char "
|
||||
var_opt_hash[2] = 1;
|
||||
var_opt_val[3] = "x_optimize_fast"
|
||||
var_opt_val_type[3] = "char "
|
||||
var_opt_hash[3] = 1;
|
||||
for (i = 0; i < n_opts; i++) {
|
||||
if (flag_set_p("(Optimization|PerFunction)", flags[i])) {
|
||||
name = var_name(flags[i])
|
||||
|
|
|
@ -132,7 +132,7 @@ print "/* Structure to save/restore optimization and target specific options. *
|
|||
print "struct GTY(()) cl_optimization";
|
||||
print "{";
|
||||
|
||||
n_opt_char = 3;
|
||||
n_opt_char = 4;
|
||||
n_opt_short = 0;
|
||||
n_opt_int = 0;
|
||||
n_opt_enum = 0;
|
||||
|
@ -140,6 +140,7 @@ n_opt_other = 0;
|
|||
var_opt_char[0] = "unsigned char x_optimize";
|
||||
var_opt_char[1] = "unsigned char x_optimize_size";
|
||||
var_opt_char[2] = "unsigned char x_optimize_debug";
|
||||
var_opt_char[3] = "unsigned char x_optimize_fast";
|
||||
|
||||
for (i = 0; i < n_opts; i++) {
|
||||
if (flag_set_p("(Optimization|PerFunction)", flags[i])) {
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-02-15 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR other/89342
|
||||
* gcc.dg/pr89342.c: New test.
|
||||
|
||||
2019-02-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/89354
|
||||
|
|
11
gcc/testsuite/gcc.dg/pr89342.c
Normal file
11
gcc/testsuite/gcc.dg/pr89342.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
/* PR other/89342 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O0" } */
|
||||
|
||||
__attribute__((optimize("Ofast")))
|
||||
void foo (void)
|
||||
{
|
||||
__attribute__((optimize("no-inline")))
|
||||
void bar (void) {}
|
||||
bar ();
|
||||
}
|
Loading…
Add table
Reference in a new issue