aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/go-c.h
diff options
context:
space:
mode:
authorThan McIntosh <thanm@google.com>2017-12-01 23:12:13 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2017-12-01 23:12:13 +0000
commit92f0112cab96a60bb777b81e93a5d10437c5fa60 (patch)
tree90ebd983c790cf1c3455070065240bae31afec39 /gcc/go/go-c.h
parent19041dad9b7f03b32775864c41649a81ebca8092 (diff)
downloadgcc-92f0112cab96a60bb777b81e93a5d10437c5fa60.zip
gcc-92f0112cab96a60bb777b81e93a5d10437c5fa60.tar.gz
gcc-92f0112cab96a60bb777b81e93a5d10437c5fa60.tar.bz2
compiler: introduce size threshold for nil checks
Add a new control variable to the Gogo class that stores the size threshold for nil checks. This value can be used to control the policy for deciding when a given deference operation needs a check and when it does not. A size threshold of -1 means that every potentially faulting dereference needs an explicit check (and branch to error call). A size threshold of K (where K > 0) means that if the size of the object being dereferenced is >= K, then we need a check. Reviewed-on: https://go-review.googlesource.com/80996 * go-c.h (go_create_gogo_args): Add nil_check_size_threshold field. * go-lang.c (go_langhook_init): Set nil_check_size_threshold. From-SVN: r255340
Diffstat (limited to 'gcc/go/go-c.h')
-rw-r--r--gcc/go/go-c.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/go/go-c.h b/gcc/go/go-c.h
index 029b5d5..f5a1bde 100644
--- a/gcc/go/go-c.h
+++ b/gcc/go/go-c.h
@@ -47,6 +47,7 @@ struct go_create_gogo_args
bool check_divide_overflow;
bool compiling_runtime;
int debug_escape_level;
+ int64_t nil_check_size_threshold;
};
extern void go_create_gogo (const struct go_create_gogo_args*);