builtins.c (expand_builtin_strlen): Make sure that we have something at the beginning of the sequence.
* builtins.c (expand_builtin_strlen): Make sure that we have something at the beginning of the sequence. * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for deferred inlines. * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs. From-SVN: r32473
This commit is contained in:
parent
8ad52449ba
commit
dd1ba632e7
@ -1,3 +1,13 @@
|
|||||||
|
2000-03-10 Jason Merrill <jason@casey.cygnus.com>
|
||||||
|
|
||||||
|
* builtins.c (expand_builtin_strlen): Make sure that we have something
|
||||||
|
at the beginning of the sequence.
|
||||||
|
|
||||||
|
* toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
|
||||||
|
deferred inlines.
|
||||||
|
|
||||||
|
* invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
|
||||||
|
|
||||||
2000-03-10 Richard Henderson <rth@cygnus.com>
|
2000-03-10 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
* except.c (can_throw): Use INTVAL on a CONST_INT.
|
* except.c (can_throw): Use INTVAL on a CONST_INT.
|
||||||
|
@ -1381,6 +1381,8 @@ expand_builtin_strlen (exp, target, mode)
|
|||||||
/* Mark the beginning of the strlen sequence so we can emit the
|
/* Mark the beginning of the strlen sequence so we can emit the
|
||||||
source operand later. */
|
source operand later. */
|
||||||
before_strlen = get_last_insn();
|
before_strlen = get_last_insn();
|
||||||
|
if (before_strlen == NULL_RTX)
|
||||||
|
before_strlen = emit_note (0, NOTE_INSN_DELETED);
|
||||||
|
|
||||||
/* Check the string is readable and has an end. */
|
/* Check the string is readable and has an end. */
|
||||||
if (current_function_check_memory_usage)
|
if (current_function_check_memory_usage)
|
||||||
|
@ -1064,6 +1064,12 @@ which is only used to initialize another object of the same type.
|
|||||||
Specifying this option disables that optimization, and forces g++ to
|
Specifying this option disables that optimization, and forces g++ to
|
||||||
call the copy constructor in all cases.
|
call the copy constructor in all cases.
|
||||||
|
|
||||||
|
@item -fno-enforce-eh-specs
|
||||||
|
Don't check for violation of exception specifications at runtime. This
|
||||||
|
option violates the C++ standard, but may be useful for reducing code
|
||||||
|
size in production builds, much like defining @samp{NDEBUG}. The compiler
|
||||||
|
will still optimize based on the exception specifications.
|
||||||
|
|
||||||
@item -fexternal-templates
|
@item -fexternal-templates
|
||||||
Cause template instantiations to obey @samp{#pragma interface} and
|
Cause template instantiations to obey @samp{#pragma interface} and
|
||||||
@samp{implementation}; template instances are emitted or not according
|
@samp{implementation}; template instances are emitted or not according
|
||||||
|
@ -2967,6 +2967,12 @@ rest_of_compilation (decl)
|
|||||||
optimize = saved_optimize;
|
optimize = saved_optimize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
current_function_nothrow = nothrow_function_p ();
|
||||||
|
if (current_function_nothrow)
|
||||||
|
/* Now we know that this can't throw; set the flag for the benefit
|
||||||
|
of other functions later in this translation unit. */
|
||||||
|
TREE_NOTHROW (current_function_decl) = 1;
|
||||||
|
|
||||||
note_deferral_of_defined_inline_function (decl);
|
note_deferral_of_defined_inline_function (decl);
|
||||||
TIMEVAR (integration_time, save_for_inline_nocopy (decl));
|
TIMEVAR (integration_time, save_for_inline_nocopy (decl));
|
||||||
DECL_SAVED_INSNS (decl)->inlinable = inlinable;
|
DECL_SAVED_INSNS (decl)->inlinable = inlinable;
|
||||||
|
Loading…
Reference in New Issue
Block a user