diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-05 03:18:18 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-05 03:18:18 +0000 |
commit | 30b1026191d4801513bbe669a1b549e0e3d0df3d (patch) | |
tree | 065fb58430d1417a0032a8917f79040a59ad7213 /gcc/doc | |
parent | 4ab071d26abb1ae0f1327b78fdb306c956a4fbd7 (diff) | |
download | gcc-30b1026191d4801513bbe669a1b549e0e3d0df3d.tar.gz |
* common.opt: Split up -fisolate-erroneous-paths into
-fisolate-erroneous-paths-dereference and
-fisolate-erroneous-paths-attribute.
* invoke.texi: Corresponding changes.
* gimple.c (infer_nonnull_range): Add and use new arguments
to control what kind of statements can be used to infer a
non-null range.
* gimple.h (infer_nonnull_range): Update prototype.
* tree-vrp.c (infer_value_range): Corresponding changes.
* opts.c (default_options_table): Update due to option split.
* gimple-ssa-isolate-paths.c: Fix trailing whitespace.
(find_implicit_erroneous_behaviour): Pass additional arguments
to infer_nonnull_range.
(find_explicit_erroneous_behaviour): Similarly.
(gate_isolate_erroneous_paths): Check both of the new
options.
testsuite/
* gcc.dg/pr38984.c: Use -fno-isolate-erroneous-paths-dereference.
* gcc.dg/tree-ssa/isolate-2.c: Explicitly turn on
-fisolate-erroneous-paths-attribute.
* gcc.dg/tree-ssa/isolate-4.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205689 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/invoke.texi | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index b30e889764d..704d4744dfd 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -378,7 +378,7 @@ Objective-C and Objective-C++ Dialects}. -fira-region=@var{region} -fira-hoist-pressure @gol -fira-loop-pressure -fno-ira-share-save-slots @gol -fno-ira-share-spill-slots -fira-verbose=@var{n} @gol --fisolate-erroneous-paths +-fisolate-erroneous-paths-dereference -fisolate-erroneous-paths-attribute -fivopts -fkeep-inline-functions -fkeep-static-consts -flive-range-shrinkage @gol -floop-block -floop-interchange -floop-strip-mine -floop-nest-optimize @gol -floop-parallelize-all -flto -flto-compression-level @gol @@ -6848,7 +6848,7 @@ also turns on the following optimization flags: -finline-small-functions @gol -findirect-inlining @gol -fipa-sra @gol --fisolate-erroneous-paths @gol +-fisolate-erroneous-paths-dereference @gol -foptimize-sibling-calls @gol -fpartial-inlining @gol -fpeephole2 @gol @@ -7742,10 +7742,17 @@ it may significantly increase code size (see @option{--param ipcp-unit-growth=@var{value}}). This flag is enabled by default at @option{-O3}. -@item -fisolate-erroneous-paths -Detect paths which trigger erroneous or undefined behaviour. Isolate those -paths from the main control flow and turn the statement with erroneous or -undefined behaviour into a trap. +@item -fisolate-erroneous-paths-dereference +Detect paths which trigger erroneous or undefined behaviour due to +dereferencing a NULL pointer. Isolate those paths from the main control +flow and turn the statement with erroneous or undefined behaviour into a trap. + +@item -fisolate-erroneous-paths-attribute +Detect paths which trigger erroneous or undefined behaviour due a NULL value +being used in a way which is forbidden by a @code{returns_nonnull} or @code{nonnull} +attribute. Isolate those paths from the main control flow and turn the +statement with erroneous or undefined behaviour into a trap. This is not +currently enabled, but may be enabled by @code{-O2} in the future. @item -ftree-sink @opindex ftree-sink |