/src/libgit2/src/util/integer.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (C) the libgit2 contributors. All rights reserved. |
3 | | * |
4 | | * This file is part of libgit2, distributed under the GNU GPL v2 with |
5 | | * a Linking Exception. For full terms see the included COPYING file. |
6 | | */ |
7 | | #ifndef INCLUDE_integer_h__ |
8 | | #define INCLUDE_integer_h__ |
9 | | |
10 | | /** @return true if p fits into the range of a size_t */ |
11 | | GIT_INLINE(int) git__is_sizet(int64_t p) |
12 | 15 | { |
13 | 15 | size_t r = (size_t)p; |
14 | 15 | return p == (int64_t)r; |
15 | 15 | } Unexecuted instantiation: download_refs_fuzzer.c:git__is_sizet Unexecuted instantiation: fuzzer_utils.c:git__is_sizet Unexecuted instantiation: errors.c:git__is_sizet Unexecuted instantiation: runtime.c:git__is_sizet Unexecuted instantiation: str.c:git__is_sizet Unexecuted instantiation: thread.c:git__is_sizet Unexecuted instantiation: util.c:git__is_sizet Unexecuted instantiation: libgit2.c:git__is_sizet Unexecuted instantiation: merge_driver.c:git__is_sizet Unexecuted instantiation: merge_file.c:git__is_sizet Unexecuted instantiation: mwindow.c:git__is_sizet Unexecuted instantiation: odb.c:git__is_sizet Unexecuted instantiation: odb_loose.c:git__is_sizet Unexecuted instantiation: odb_pack.c:git__is_sizet Unexecuted instantiation: oid.c:git__is_sizet Line | Count | Source | 12 | 1 | { | 13 | 1 | size_t r = (size_t)p; | 14 | 1 | return p == (int64_t)r; | 15 | 1 | } |
Unexecuted instantiation: remote.c:git__is_sizet Unexecuted instantiation: repository.c:git__is_sizet Unexecuted instantiation: revparse.c:git__is_sizet Unexecuted instantiation: revwalk.c:git__is_sizet Unexecuted instantiation: settings.c:git__is_sizet Unexecuted instantiation: strarray.c:git__is_sizet Unexecuted instantiation: mbedtls.c:git__is_sizet Unexecuted instantiation: openssl.c:git__is_sizet Unexecuted instantiation: registry.c:git__is_sizet Unexecuted instantiation: socket.c:git__is_sizet Unexecuted instantiation: submodule.c:git__is_sizet Unexecuted instantiation: sysdir.c:git__is_sizet Unexecuted instantiation: tag.c:git__is_sizet Unexecuted instantiation: transport.c:git__is_sizet Unexecuted instantiation: git.c:git__is_sizet Unexecuted instantiation: http.c:git__is_sizet Unexecuted instantiation: httpclient.c:git__is_sizet Unexecuted instantiation: httpparser.c:git__is_sizet Unexecuted instantiation: local.c:git__is_sizet Unexecuted instantiation: smart.c:git__is_sizet Unexecuted instantiation: smart_pkt.c:git__is_sizet Unexecuted instantiation: smart_protocol.c:git__is_sizet Unexecuted instantiation: ssh_libssh2.c:git__is_sizet Unexecuted instantiation: tree.c:git__is_sizet Unexecuted instantiation: worktree.c:git__is_sizet Unexecuted instantiation: alloc.c:git__is_sizet Unexecuted instantiation: failalloc.c:git__is_sizet Unexecuted instantiation: stdalloc.c:git__is_sizet Unexecuted instantiation: date.c:git__is_sizet Unexecuted instantiation: filebuf.c:git__is_sizet Unexecuted instantiation: fs_path.c:git__is_sizet Line | Count | Source | 12 | 14 | { | 13 | 14 | size_t r = (size_t)p; | 14 | 14 | return p == (int64_t)r; | 15 | 14 | } |
Unexecuted instantiation: hash.c:git__is_sizet Unexecuted instantiation: net.c:git__is_sizet Unexecuted instantiation: pool.c:git__is_sizet Unexecuted instantiation: posix.c:git__is_sizet Unexecuted instantiation: pqueue.c:git__is_sizet Unexecuted instantiation: rand.c:git__is_sizet Unexecuted instantiation: regexp.c:git__is_sizet Unexecuted instantiation: tsort.c:git__is_sizet Unexecuted instantiation: vector.c:git__is_sizet Unexecuted instantiation: wildmatch.c:git__is_sizet Unexecuted instantiation: zstream.c:git__is_sizet Unexecuted instantiation: map.c:git__is_sizet Unexecuted instantiation: realpath.c:git__is_sizet Unexecuted instantiation: collisiondetect.c:git__is_sizet Unexecuted instantiation: sha1.c:git__is_sizet Unexecuted instantiation: ubc_check.c:git__is_sizet Unexecuted instantiation: builtin.c:git__is_sizet Unexecuted instantiation: annotated_commit.c:git__is_sizet Unexecuted instantiation: attr.c:git__is_sizet Unexecuted instantiation: attr_file.c:git__is_sizet Unexecuted instantiation: attrcache.c:git__is_sizet Unexecuted instantiation: blob.c:git__is_sizet Unexecuted instantiation: branch.c:git__is_sizet Unexecuted instantiation: buf.c:git__is_sizet Unexecuted instantiation: cache.c:git__is_sizet Unexecuted instantiation: checkout.c:git__is_sizet Unexecuted instantiation: clone.c:git__is_sizet Unexecuted instantiation: commit.c:git__is_sizet Unexecuted instantiation: commit_graph.c:git__is_sizet Unexecuted instantiation: commit_list.c:git__is_sizet Unexecuted instantiation: config.c:git__is_sizet Unexecuted instantiation: config_cache.c:git__is_sizet Unexecuted instantiation: config_file.c:git__is_sizet Unexecuted instantiation: config_list.c:git__is_sizet Unexecuted instantiation: config_parse.c:git__is_sizet Unexecuted instantiation: config_snapshot.c:git__is_sizet Unexecuted instantiation: delta.c:git__is_sizet Unexecuted instantiation: diff.c:git__is_sizet Unexecuted instantiation: diff_driver.c:git__is_sizet Unexecuted instantiation: diff_generate.c:git__is_sizet Unexecuted instantiation: diff_print.c:git__is_sizet Unexecuted instantiation: diff_tform.c:git__is_sizet Unexecuted instantiation: email.c:git__is_sizet Unexecuted instantiation: fetch.c:git__is_sizet Unexecuted instantiation: fetchhead.c:git__is_sizet Unexecuted instantiation: filter.c:git__is_sizet Unexecuted instantiation: grafts.c:git__is_sizet Unexecuted instantiation: graph.c:git__is_sizet Unexecuted instantiation: hashsig.c:git__is_sizet Unexecuted instantiation: ident.c:git__is_sizet Unexecuted instantiation: index.c:git__is_sizet Unexecuted instantiation: index_map.c:git__is_sizet Unexecuted instantiation: indexer.c:git__is_sizet Unexecuted instantiation: iterator.c:git__is_sizet Unexecuted instantiation: mailmap.c:git__is_sizet Unexecuted instantiation: merge.c:git__is_sizet Unexecuted instantiation: midx.c:git__is_sizet Unexecuted instantiation: object.c:git__is_sizet Unexecuted instantiation: object_api.c:git__is_sizet Unexecuted instantiation: oidarray.c:git__is_sizet Unexecuted instantiation: pack-objects.c:git__is_sizet Unexecuted instantiation: parse.c:git__is_sizet Unexecuted instantiation: patch.c:git__is_sizet Unexecuted instantiation: patch_generate.c:git__is_sizet Unexecuted instantiation: path.c:git__is_sizet Unexecuted instantiation: pathspec.c:git__is_sizet Unexecuted instantiation: proxy.c:git__is_sizet Unexecuted instantiation: push.c:git__is_sizet Unexecuted instantiation: refdb.c:git__is_sizet Unexecuted instantiation: refdb_fs.c:git__is_sizet Unexecuted instantiation: reflog.c:git__is_sizet Unexecuted instantiation: refs.c:git__is_sizet Unexecuted instantiation: refspec.c:git__is_sizet Unexecuted instantiation: signature.c:git__is_sizet Unexecuted instantiation: tls.c:git__is_sizet Unexecuted instantiation: trace.c:git__is_sizet Unexecuted instantiation: transaction.c:git__is_sizet Unexecuted instantiation: auth.c:git__is_sizet Unexecuted instantiation: credential.c:git__is_sizet Unexecuted instantiation: tree-cache.c:git__is_sizet Unexecuted instantiation: sortedcache.c:git__is_sizet Unexecuted instantiation: utf8.c:git__is_sizet Unexecuted instantiation: varint.c:git__is_sizet Unexecuted instantiation: crlf.c:git__is_sizet Unexecuted instantiation: diff_file.c:git__is_sizet Unexecuted instantiation: diff_stats.c:git__is_sizet Unexecuted instantiation: diff_xdiff.c:git__is_sizet Unexecuted instantiation: ignore.c:git__is_sizet |
16 | | |
17 | | /** @return true if p fits into the range of an ssize_t */ |
18 | | GIT_INLINE(int) git__is_ssizet(size_t p) |
19 | 29 | { |
20 | 29 | ssize_t r = (ssize_t)p; |
21 | 29 | return p == (size_t)r; |
22 | 29 | } Unexecuted instantiation: download_refs_fuzzer.c:git__is_ssizet Unexecuted instantiation: fuzzer_utils.c:git__is_ssizet Unexecuted instantiation: errors.c:git__is_ssizet Unexecuted instantiation: runtime.c:git__is_ssizet Unexecuted instantiation: str.c:git__is_ssizet Unexecuted instantiation: thread.c:git__is_ssizet Unexecuted instantiation: util.c:git__is_ssizet Unexecuted instantiation: libgit2.c:git__is_ssizet Unexecuted instantiation: merge_driver.c:git__is_ssizet Unexecuted instantiation: merge_file.c:git__is_ssizet Unexecuted instantiation: mwindow.c:git__is_ssizet Unexecuted instantiation: odb.c:git__is_ssizet Unexecuted instantiation: odb_loose.c:git__is_ssizet Unexecuted instantiation: odb_pack.c:git__is_ssizet Unexecuted instantiation: oid.c:git__is_ssizet Unexecuted instantiation: pack.c:git__is_ssizet Unexecuted instantiation: remote.c:git__is_ssizet Unexecuted instantiation: repository.c:git__is_ssizet Unexecuted instantiation: revparse.c:git__is_ssizet Unexecuted instantiation: revwalk.c:git__is_ssizet Unexecuted instantiation: settings.c:git__is_ssizet Unexecuted instantiation: strarray.c:git__is_ssizet Unexecuted instantiation: mbedtls.c:git__is_ssizet Unexecuted instantiation: openssl.c:git__is_ssizet Unexecuted instantiation: registry.c:git__is_ssizet Unexecuted instantiation: socket.c:git__is_ssizet Unexecuted instantiation: submodule.c:git__is_ssizet Unexecuted instantiation: sysdir.c:git__is_ssizet Unexecuted instantiation: tag.c:git__is_ssizet Unexecuted instantiation: transport.c:git__is_ssizet Unexecuted instantiation: git.c:git__is_ssizet Unexecuted instantiation: http.c:git__is_ssizet Unexecuted instantiation: httpclient.c:git__is_ssizet Unexecuted instantiation: httpparser.c:git__is_ssizet Unexecuted instantiation: local.c:git__is_ssizet Unexecuted instantiation: smart.c:git__is_ssizet Unexecuted instantiation: smart_pkt.c:git__is_ssizet Unexecuted instantiation: smart_protocol.c:git__is_ssizet Unexecuted instantiation: ssh_libssh2.c:git__is_ssizet Unexecuted instantiation: tree.c:git__is_ssizet Unexecuted instantiation: worktree.c:git__is_ssizet Unexecuted instantiation: alloc.c:git__is_ssizet Unexecuted instantiation: failalloc.c:git__is_ssizet Unexecuted instantiation: stdalloc.c:git__is_ssizet Unexecuted instantiation: date.c:git__is_ssizet Unexecuted instantiation: filebuf.c:git__is_ssizet Unexecuted instantiation: fs_path.c:git__is_ssizet Line | Count | Source | 19 | 14 | { | 20 | 14 | ssize_t r = (ssize_t)p; | 21 | 14 | return p == (size_t)r; | 22 | 14 | } |
Unexecuted instantiation: hash.c:git__is_ssizet Unexecuted instantiation: net.c:git__is_ssizet Unexecuted instantiation: pool.c:git__is_ssizet Line | Count | Source | 19 | 15 | { | 20 | 15 | ssize_t r = (ssize_t)p; | 21 | 15 | return p == (size_t)r; | 22 | 15 | } |
Unexecuted instantiation: pqueue.c:git__is_ssizet Unexecuted instantiation: rand.c:git__is_ssizet Unexecuted instantiation: regexp.c:git__is_ssizet Unexecuted instantiation: tsort.c:git__is_ssizet Unexecuted instantiation: vector.c:git__is_ssizet Unexecuted instantiation: wildmatch.c:git__is_ssizet Unexecuted instantiation: zstream.c:git__is_ssizet Unexecuted instantiation: map.c:git__is_ssizet Unexecuted instantiation: realpath.c:git__is_ssizet Unexecuted instantiation: collisiondetect.c:git__is_ssizet Unexecuted instantiation: sha1.c:git__is_ssizet Unexecuted instantiation: ubc_check.c:git__is_ssizet Unexecuted instantiation: builtin.c:git__is_ssizet Unexecuted instantiation: annotated_commit.c:git__is_ssizet Unexecuted instantiation: attr.c:git__is_ssizet Unexecuted instantiation: attr_file.c:git__is_ssizet Unexecuted instantiation: attrcache.c:git__is_ssizet Unexecuted instantiation: blob.c:git__is_ssizet Unexecuted instantiation: branch.c:git__is_ssizet Unexecuted instantiation: buf.c:git__is_ssizet Unexecuted instantiation: cache.c:git__is_ssizet Unexecuted instantiation: checkout.c:git__is_ssizet Unexecuted instantiation: clone.c:git__is_ssizet Unexecuted instantiation: commit.c:git__is_ssizet Unexecuted instantiation: commit_graph.c:git__is_ssizet Unexecuted instantiation: commit_list.c:git__is_ssizet Unexecuted instantiation: config.c:git__is_ssizet Unexecuted instantiation: config_cache.c:git__is_ssizet Unexecuted instantiation: config_file.c:git__is_ssizet Unexecuted instantiation: config_list.c:git__is_ssizet Unexecuted instantiation: config_parse.c:git__is_ssizet Unexecuted instantiation: config_snapshot.c:git__is_ssizet Unexecuted instantiation: delta.c:git__is_ssizet Unexecuted instantiation: diff.c:git__is_ssizet Unexecuted instantiation: diff_driver.c:git__is_ssizet Unexecuted instantiation: diff_generate.c:git__is_ssizet Unexecuted instantiation: diff_print.c:git__is_ssizet Unexecuted instantiation: diff_tform.c:git__is_ssizet Unexecuted instantiation: email.c:git__is_ssizet Unexecuted instantiation: fetch.c:git__is_ssizet Unexecuted instantiation: fetchhead.c:git__is_ssizet Unexecuted instantiation: filter.c:git__is_ssizet Unexecuted instantiation: grafts.c:git__is_ssizet Unexecuted instantiation: graph.c:git__is_ssizet Unexecuted instantiation: hashsig.c:git__is_ssizet Unexecuted instantiation: ident.c:git__is_ssizet Unexecuted instantiation: index.c:git__is_ssizet Unexecuted instantiation: index_map.c:git__is_ssizet Unexecuted instantiation: indexer.c:git__is_ssizet Unexecuted instantiation: iterator.c:git__is_ssizet Unexecuted instantiation: mailmap.c:git__is_ssizet Unexecuted instantiation: merge.c:git__is_ssizet Unexecuted instantiation: midx.c:git__is_ssizet Unexecuted instantiation: object.c:git__is_ssizet Unexecuted instantiation: object_api.c:git__is_ssizet Unexecuted instantiation: oidarray.c:git__is_ssizet Unexecuted instantiation: pack-objects.c:git__is_ssizet Unexecuted instantiation: parse.c:git__is_ssizet Unexecuted instantiation: patch.c:git__is_ssizet Unexecuted instantiation: patch_generate.c:git__is_ssizet Unexecuted instantiation: path.c:git__is_ssizet Unexecuted instantiation: pathspec.c:git__is_ssizet Unexecuted instantiation: proxy.c:git__is_ssizet Unexecuted instantiation: push.c:git__is_ssizet Unexecuted instantiation: refdb.c:git__is_ssizet Unexecuted instantiation: refdb_fs.c:git__is_ssizet Unexecuted instantiation: reflog.c:git__is_ssizet Unexecuted instantiation: refs.c:git__is_ssizet Unexecuted instantiation: refspec.c:git__is_ssizet Unexecuted instantiation: signature.c:git__is_ssizet Unexecuted instantiation: tls.c:git__is_ssizet Unexecuted instantiation: trace.c:git__is_ssizet Unexecuted instantiation: transaction.c:git__is_ssizet Unexecuted instantiation: auth.c:git__is_ssizet Unexecuted instantiation: credential.c:git__is_ssizet Unexecuted instantiation: tree-cache.c:git__is_ssizet Unexecuted instantiation: sortedcache.c:git__is_ssizet Unexecuted instantiation: utf8.c:git__is_ssizet Unexecuted instantiation: varint.c:git__is_ssizet Unexecuted instantiation: crlf.c:git__is_ssizet Unexecuted instantiation: diff_file.c:git__is_ssizet Unexecuted instantiation: diff_stats.c:git__is_ssizet Unexecuted instantiation: diff_xdiff.c:git__is_ssizet Unexecuted instantiation: ignore.c:git__is_ssizet |
23 | | |
24 | | /** @return true if p fits into the range of a uint16_t */ |
25 | | GIT_INLINE(int) git__is_uint16(size_t p) |
26 | 0 | { |
27 | 0 | uint16_t r = (uint16_t)p; |
28 | 0 | return p == (size_t)r; |
29 | 0 | } Unexecuted instantiation: download_refs_fuzzer.c:git__is_uint16 Unexecuted instantiation: fuzzer_utils.c:git__is_uint16 Unexecuted instantiation: errors.c:git__is_uint16 Unexecuted instantiation: runtime.c:git__is_uint16 Unexecuted instantiation: str.c:git__is_uint16 Unexecuted instantiation: thread.c:git__is_uint16 Unexecuted instantiation: util.c:git__is_uint16 Unexecuted instantiation: libgit2.c:git__is_uint16 Unexecuted instantiation: merge_driver.c:git__is_uint16 Unexecuted instantiation: merge_file.c:git__is_uint16 Unexecuted instantiation: mwindow.c:git__is_uint16 Unexecuted instantiation: odb.c:git__is_uint16 Unexecuted instantiation: odb_loose.c:git__is_uint16 Unexecuted instantiation: odb_pack.c:git__is_uint16 Unexecuted instantiation: oid.c:git__is_uint16 Unexecuted instantiation: pack.c:git__is_uint16 Unexecuted instantiation: remote.c:git__is_uint16 Unexecuted instantiation: repository.c:git__is_uint16 Unexecuted instantiation: revparse.c:git__is_uint16 Unexecuted instantiation: revwalk.c:git__is_uint16 Unexecuted instantiation: settings.c:git__is_uint16 Unexecuted instantiation: strarray.c:git__is_uint16 Unexecuted instantiation: mbedtls.c:git__is_uint16 Unexecuted instantiation: openssl.c:git__is_uint16 Unexecuted instantiation: registry.c:git__is_uint16 Unexecuted instantiation: socket.c:git__is_uint16 Unexecuted instantiation: submodule.c:git__is_uint16 Unexecuted instantiation: sysdir.c:git__is_uint16 Unexecuted instantiation: tag.c:git__is_uint16 Unexecuted instantiation: transport.c:git__is_uint16 Unexecuted instantiation: git.c:git__is_uint16 Unexecuted instantiation: http.c:git__is_uint16 Unexecuted instantiation: httpclient.c:git__is_uint16 Unexecuted instantiation: httpparser.c:git__is_uint16 Unexecuted instantiation: local.c:git__is_uint16 Unexecuted instantiation: smart.c:git__is_uint16 Unexecuted instantiation: smart_pkt.c:git__is_uint16 Unexecuted instantiation: smart_protocol.c:git__is_uint16 Unexecuted instantiation: ssh_libssh2.c:git__is_uint16 Unexecuted instantiation: tree.c:git__is_uint16 Unexecuted instantiation: worktree.c:git__is_uint16 Unexecuted instantiation: alloc.c:git__is_uint16 Unexecuted instantiation: failalloc.c:git__is_uint16 Unexecuted instantiation: stdalloc.c:git__is_uint16 Unexecuted instantiation: date.c:git__is_uint16 Unexecuted instantiation: filebuf.c:git__is_uint16 Unexecuted instantiation: fs_path.c:git__is_uint16 Unexecuted instantiation: futils.c:git__is_uint16 Unexecuted instantiation: hash.c:git__is_uint16 Unexecuted instantiation: net.c:git__is_uint16 Unexecuted instantiation: pool.c:git__is_uint16 Unexecuted instantiation: posix.c:git__is_uint16 Unexecuted instantiation: pqueue.c:git__is_uint16 Unexecuted instantiation: rand.c:git__is_uint16 Unexecuted instantiation: regexp.c:git__is_uint16 Unexecuted instantiation: tsort.c:git__is_uint16 Unexecuted instantiation: vector.c:git__is_uint16 Unexecuted instantiation: wildmatch.c:git__is_uint16 Unexecuted instantiation: zstream.c:git__is_uint16 Unexecuted instantiation: map.c:git__is_uint16 Unexecuted instantiation: realpath.c:git__is_uint16 Unexecuted instantiation: collisiondetect.c:git__is_uint16 Unexecuted instantiation: sha1.c:git__is_uint16 Unexecuted instantiation: ubc_check.c:git__is_uint16 Unexecuted instantiation: builtin.c:git__is_uint16 Unexecuted instantiation: annotated_commit.c:git__is_uint16 Unexecuted instantiation: attr.c:git__is_uint16 Unexecuted instantiation: attr_file.c:git__is_uint16 Unexecuted instantiation: attrcache.c:git__is_uint16 Unexecuted instantiation: blob.c:git__is_uint16 Unexecuted instantiation: branch.c:git__is_uint16 Unexecuted instantiation: buf.c:git__is_uint16 Unexecuted instantiation: cache.c:git__is_uint16 Unexecuted instantiation: checkout.c:git__is_uint16 Unexecuted instantiation: clone.c:git__is_uint16 Unexecuted instantiation: commit.c:git__is_uint16 Unexecuted instantiation: commit_graph.c:git__is_uint16 Unexecuted instantiation: commit_list.c:git__is_uint16 Unexecuted instantiation: config.c:git__is_uint16 Unexecuted instantiation: config_cache.c:git__is_uint16 Unexecuted instantiation: config_file.c:git__is_uint16 Unexecuted instantiation: config_list.c:git__is_uint16 Unexecuted instantiation: config_parse.c:git__is_uint16 Unexecuted instantiation: config_snapshot.c:git__is_uint16 Unexecuted instantiation: delta.c:git__is_uint16 Unexecuted instantiation: diff.c:git__is_uint16 Unexecuted instantiation: diff_driver.c:git__is_uint16 Unexecuted instantiation: diff_generate.c:git__is_uint16 Unexecuted instantiation: diff_print.c:git__is_uint16 Unexecuted instantiation: diff_tform.c:git__is_uint16 Unexecuted instantiation: email.c:git__is_uint16 Unexecuted instantiation: fetch.c:git__is_uint16 Unexecuted instantiation: fetchhead.c:git__is_uint16 Unexecuted instantiation: filter.c:git__is_uint16 Unexecuted instantiation: grafts.c:git__is_uint16 Unexecuted instantiation: graph.c:git__is_uint16 Unexecuted instantiation: hashsig.c:git__is_uint16 Unexecuted instantiation: ident.c:git__is_uint16 Unexecuted instantiation: index.c:git__is_uint16 Unexecuted instantiation: index_map.c:git__is_uint16 Unexecuted instantiation: indexer.c:git__is_uint16 Unexecuted instantiation: iterator.c:git__is_uint16 Unexecuted instantiation: mailmap.c:git__is_uint16 Unexecuted instantiation: merge.c:git__is_uint16 Unexecuted instantiation: midx.c:git__is_uint16 Unexecuted instantiation: object.c:git__is_uint16 Unexecuted instantiation: object_api.c:git__is_uint16 Unexecuted instantiation: oidarray.c:git__is_uint16 Unexecuted instantiation: pack-objects.c:git__is_uint16 Unexecuted instantiation: parse.c:git__is_uint16 Unexecuted instantiation: patch.c:git__is_uint16 Unexecuted instantiation: patch_generate.c:git__is_uint16 Unexecuted instantiation: path.c:git__is_uint16 Unexecuted instantiation: pathspec.c:git__is_uint16 Unexecuted instantiation: proxy.c:git__is_uint16 Unexecuted instantiation: push.c:git__is_uint16 Unexecuted instantiation: refdb.c:git__is_uint16 Unexecuted instantiation: refdb_fs.c:git__is_uint16 Unexecuted instantiation: reflog.c:git__is_uint16 Unexecuted instantiation: refs.c:git__is_uint16 Unexecuted instantiation: refspec.c:git__is_uint16 Unexecuted instantiation: signature.c:git__is_uint16 Unexecuted instantiation: tls.c:git__is_uint16 Unexecuted instantiation: trace.c:git__is_uint16 Unexecuted instantiation: transaction.c:git__is_uint16 Unexecuted instantiation: auth.c:git__is_uint16 Unexecuted instantiation: credential.c:git__is_uint16 Unexecuted instantiation: tree-cache.c:git__is_uint16 Unexecuted instantiation: sortedcache.c:git__is_uint16 Unexecuted instantiation: utf8.c:git__is_uint16 Unexecuted instantiation: varint.c:git__is_uint16 Unexecuted instantiation: crlf.c:git__is_uint16 Unexecuted instantiation: diff_file.c:git__is_uint16 Unexecuted instantiation: diff_stats.c:git__is_uint16 Unexecuted instantiation: diff_xdiff.c:git__is_uint16 Unexecuted instantiation: ignore.c:git__is_uint16 |
30 | | |
31 | | /** @return true if p fits into the range of a uint32_t */ |
32 | | GIT_INLINE(int) git__is_uint32(size_t p) |
33 | 0 | { |
34 | 0 | uint32_t r = (uint32_t)p; |
35 | 0 | return p == (size_t)r; |
36 | 0 | } Unexecuted instantiation: download_refs_fuzzer.c:git__is_uint32 Unexecuted instantiation: fuzzer_utils.c:git__is_uint32 Unexecuted instantiation: errors.c:git__is_uint32 Unexecuted instantiation: runtime.c:git__is_uint32 Unexecuted instantiation: str.c:git__is_uint32 Unexecuted instantiation: thread.c:git__is_uint32 Unexecuted instantiation: util.c:git__is_uint32 Unexecuted instantiation: libgit2.c:git__is_uint32 Unexecuted instantiation: merge_driver.c:git__is_uint32 Unexecuted instantiation: merge_file.c:git__is_uint32 Unexecuted instantiation: mwindow.c:git__is_uint32 Unexecuted instantiation: odb.c:git__is_uint32 Unexecuted instantiation: odb_loose.c:git__is_uint32 Unexecuted instantiation: odb_pack.c:git__is_uint32 Unexecuted instantiation: oid.c:git__is_uint32 Unexecuted instantiation: pack.c:git__is_uint32 Unexecuted instantiation: remote.c:git__is_uint32 Unexecuted instantiation: repository.c:git__is_uint32 Unexecuted instantiation: revparse.c:git__is_uint32 Unexecuted instantiation: revwalk.c:git__is_uint32 Unexecuted instantiation: settings.c:git__is_uint32 Unexecuted instantiation: strarray.c:git__is_uint32 Unexecuted instantiation: mbedtls.c:git__is_uint32 Unexecuted instantiation: openssl.c:git__is_uint32 Unexecuted instantiation: registry.c:git__is_uint32 Unexecuted instantiation: socket.c:git__is_uint32 Unexecuted instantiation: submodule.c:git__is_uint32 Unexecuted instantiation: sysdir.c:git__is_uint32 Unexecuted instantiation: tag.c:git__is_uint32 Unexecuted instantiation: transport.c:git__is_uint32 Unexecuted instantiation: git.c:git__is_uint32 Unexecuted instantiation: http.c:git__is_uint32 Unexecuted instantiation: httpclient.c:git__is_uint32 Unexecuted instantiation: httpparser.c:git__is_uint32 Unexecuted instantiation: local.c:git__is_uint32 Unexecuted instantiation: smart.c:git__is_uint32 Unexecuted instantiation: smart_pkt.c:git__is_uint32 Unexecuted instantiation: smart_protocol.c:git__is_uint32 Unexecuted instantiation: ssh_libssh2.c:git__is_uint32 Unexecuted instantiation: tree.c:git__is_uint32 Unexecuted instantiation: worktree.c:git__is_uint32 Unexecuted instantiation: alloc.c:git__is_uint32 Unexecuted instantiation: failalloc.c:git__is_uint32 Unexecuted instantiation: stdalloc.c:git__is_uint32 Unexecuted instantiation: date.c:git__is_uint32 Unexecuted instantiation: filebuf.c:git__is_uint32 Unexecuted instantiation: fs_path.c:git__is_uint32 Unexecuted instantiation: futils.c:git__is_uint32 Unexecuted instantiation: hash.c:git__is_uint32 Unexecuted instantiation: net.c:git__is_uint32 Unexecuted instantiation: pool.c:git__is_uint32 Unexecuted instantiation: posix.c:git__is_uint32 Unexecuted instantiation: pqueue.c:git__is_uint32 Unexecuted instantiation: rand.c:git__is_uint32 Unexecuted instantiation: regexp.c:git__is_uint32 Unexecuted instantiation: tsort.c:git__is_uint32 Unexecuted instantiation: vector.c:git__is_uint32 Unexecuted instantiation: wildmatch.c:git__is_uint32 Unexecuted instantiation: zstream.c:git__is_uint32 Unexecuted instantiation: map.c:git__is_uint32 Unexecuted instantiation: realpath.c:git__is_uint32 Unexecuted instantiation: collisiondetect.c:git__is_uint32 Unexecuted instantiation: sha1.c:git__is_uint32 Unexecuted instantiation: ubc_check.c:git__is_uint32 Unexecuted instantiation: builtin.c:git__is_uint32 Unexecuted instantiation: annotated_commit.c:git__is_uint32 Unexecuted instantiation: attr.c:git__is_uint32 Unexecuted instantiation: attr_file.c:git__is_uint32 Unexecuted instantiation: attrcache.c:git__is_uint32 Unexecuted instantiation: blob.c:git__is_uint32 Unexecuted instantiation: branch.c:git__is_uint32 Unexecuted instantiation: buf.c:git__is_uint32 Unexecuted instantiation: cache.c:git__is_uint32 Unexecuted instantiation: checkout.c:git__is_uint32 Unexecuted instantiation: clone.c:git__is_uint32 Unexecuted instantiation: commit.c:git__is_uint32 Unexecuted instantiation: commit_graph.c:git__is_uint32 Unexecuted instantiation: commit_list.c:git__is_uint32 Unexecuted instantiation: config.c:git__is_uint32 Unexecuted instantiation: config_cache.c:git__is_uint32 Unexecuted instantiation: config_file.c:git__is_uint32 Unexecuted instantiation: config_list.c:git__is_uint32 Unexecuted instantiation: config_parse.c:git__is_uint32 Unexecuted instantiation: config_snapshot.c:git__is_uint32 Unexecuted instantiation: delta.c:git__is_uint32 Unexecuted instantiation: diff.c:git__is_uint32 Unexecuted instantiation: diff_driver.c:git__is_uint32 Unexecuted instantiation: diff_generate.c:git__is_uint32 Unexecuted instantiation: diff_print.c:git__is_uint32 Unexecuted instantiation: diff_tform.c:git__is_uint32 Unexecuted instantiation: email.c:git__is_uint32 Unexecuted instantiation: fetch.c:git__is_uint32 Unexecuted instantiation: fetchhead.c:git__is_uint32 Unexecuted instantiation: filter.c:git__is_uint32 Unexecuted instantiation: grafts.c:git__is_uint32 Unexecuted instantiation: graph.c:git__is_uint32 Unexecuted instantiation: hashsig.c:git__is_uint32 Unexecuted instantiation: ident.c:git__is_uint32 Unexecuted instantiation: index.c:git__is_uint32 Unexecuted instantiation: index_map.c:git__is_uint32 Unexecuted instantiation: indexer.c:git__is_uint32 Unexecuted instantiation: iterator.c:git__is_uint32 Unexecuted instantiation: mailmap.c:git__is_uint32 Unexecuted instantiation: merge.c:git__is_uint32 Unexecuted instantiation: midx.c:git__is_uint32 Unexecuted instantiation: object.c:git__is_uint32 Unexecuted instantiation: object_api.c:git__is_uint32 Unexecuted instantiation: oidarray.c:git__is_uint32 Unexecuted instantiation: pack-objects.c:git__is_uint32 Unexecuted instantiation: parse.c:git__is_uint32 Unexecuted instantiation: patch.c:git__is_uint32 Unexecuted instantiation: patch_generate.c:git__is_uint32 Unexecuted instantiation: path.c:git__is_uint32 Unexecuted instantiation: pathspec.c:git__is_uint32 Unexecuted instantiation: proxy.c:git__is_uint32 Unexecuted instantiation: push.c:git__is_uint32 Unexecuted instantiation: refdb.c:git__is_uint32 Unexecuted instantiation: refdb_fs.c:git__is_uint32 Unexecuted instantiation: reflog.c:git__is_uint32 Unexecuted instantiation: refs.c:git__is_uint32 Unexecuted instantiation: refspec.c:git__is_uint32 Unexecuted instantiation: signature.c:git__is_uint32 Unexecuted instantiation: tls.c:git__is_uint32 Unexecuted instantiation: trace.c:git__is_uint32 Unexecuted instantiation: transaction.c:git__is_uint32 Unexecuted instantiation: auth.c:git__is_uint32 Unexecuted instantiation: credential.c:git__is_uint32 Unexecuted instantiation: tree-cache.c:git__is_uint32 Unexecuted instantiation: sortedcache.c:git__is_uint32 Unexecuted instantiation: utf8.c:git__is_uint32 Unexecuted instantiation: varint.c:git__is_uint32 Unexecuted instantiation: crlf.c:git__is_uint32 Unexecuted instantiation: diff_file.c:git__is_uint32 Unexecuted instantiation: diff_stats.c:git__is_uint32 Unexecuted instantiation: diff_xdiff.c:git__is_uint32 Unexecuted instantiation: ignore.c:git__is_uint32 |
37 | | |
38 | | /** @return true if p fits into the range of an unsigned long */ |
39 | | GIT_INLINE(int) git__is_ulong(int64_t p) |
40 | 0 | { |
41 | 0 | unsigned long r = (unsigned long)p; |
42 | 0 | return p == (int64_t)r; |
43 | 0 | } Unexecuted instantiation: download_refs_fuzzer.c:git__is_ulong Unexecuted instantiation: fuzzer_utils.c:git__is_ulong Unexecuted instantiation: errors.c:git__is_ulong Unexecuted instantiation: runtime.c:git__is_ulong Unexecuted instantiation: str.c:git__is_ulong Unexecuted instantiation: thread.c:git__is_ulong Unexecuted instantiation: util.c:git__is_ulong Unexecuted instantiation: libgit2.c:git__is_ulong Unexecuted instantiation: merge_driver.c:git__is_ulong Unexecuted instantiation: merge_file.c:git__is_ulong Unexecuted instantiation: mwindow.c:git__is_ulong Unexecuted instantiation: odb.c:git__is_ulong Unexecuted instantiation: odb_loose.c:git__is_ulong Unexecuted instantiation: odb_pack.c:git__is_ulong Unexecuted instantiation: oid.c:git__is_ulong Unexecuted instantiation: pack.c:git__is_ulong Unexecuted instantiation: remote.c:git__is_ulong Unexecuted instantiation: repository.c:git__is_ulong Unexecuted instantiation: revparse.c:git__is_ulong Unexecuted instantiation: revwalk.c:git__is_ulong Unexecuted instantiation: settings.c:git__is_ulong Unexecuted instantiation: strarray.c:git__is_ulong Unexecuted instantiation: mbedtls.c:git__is_ulong Unexecuted instantiation: openssl.c:git__is_ulong Unexecuted instantiation: registry.c:git__is_ulong Unexecuted instantiation: socket.c:git__is_ulong Unexecuted instantiation: submodule.c:git__is_ulong Unexecuted instantiation: sysdir.c:git__is_ulong Unexecuted instantiation: tag.c:git__is_ulong Unexecuted instantiation: transport.c:git__is_ulong Unexecuted instantiation: git.c:git__is_ulong Unexecuted instantiation: http.c:git__is_ulong Unexecuted instantiation: httpclient.c:git__is_ulong Unexecuted instantiation: httpparser.c:git__is_ulong Unexecuted instantiation: local.c:git__is_ulong Unexecuted instantiation: smart.c:git__is_ulong Unexecuted instantiation: smart_pkt.c:git__is_ulong Unexecuted instantiation: smart_protocol.c:git__is_ulong Unexecuted instantiation: ssh_libssh2.c:git__is_ulong Unexecuted instantiation: tree.c:git__is_ulong Unexecuted instantiation: worktree.c:git__is_ulong Unexecuted instantiation: alloc.c:git__is_ulong Unexecuted instantiation: failalloc.c:git__is_ulong Unexecuted instantiation: stdalloc.c:git__is_ulong Unexecuted instantiation: date.c:git__is_ulong Unexecuted instantiation: filebuf.c:git__is_ulong Unexecuted instantiation: fs_path.c:git__is_ulong Unexecuted instantiation: futils.c:git__is_ulong Unexecuted instantiation: hash.c:git__is_ulong Unexecuted instantiation: net.c:git__is_ulong Unexecuted instantiation: pool.c:git__is_ulong Unexecuted instantiation: posix.c:git__is_ulong Unexecuted instantiation: pqueue.c:git__is_ulong Unexecuted instantiation: rand.c:git__is_ulong Unexecuted instantiation: regexp.c:git__is_ulong Unexecuted instantiation: tsort.c:git__is_ulong Unexecuted instantiation: vector.c:git__is_ulong Unexecuted instantiation: wildmatch.c:git__is_ulong Unexecuted instantiation: zstream.c:git__is_ulong Unexecuted instantiation: map.c:git__is_ulong Unexecuted instantiation: realpath.c:git__is_ulong Unexecuted instantiation: collisiondetect.c:git__is_ulong Unexecuted instantiation: sha1.c:git__is_ulong Unexecuted instantiation: ubc_check.c:git__is_ulong Unexecuted instantiation: builtin.c:git__is_ulong Unexecuted instantiation: annotated_commit.c:git__is_ulong Unexecuted instantiation: attr.c:git__is_ulong Unexecuted instantiation: attr_file.c:git__is_ulong Unexecuted instantiation: attrcache.c:git__is_ulong Unexecuted instantiation: blob.c:git__is_ulong Unexecuted instantiation: branch.c:git__is_ulong Unexecuted instantiation: buf.c:git__is_ulong Unexecuted instantiation: cache.c:git__is_ulong Unexecuted instantiation: checkout.c:git__is_ulong Unexecuted instantiation: clone.c:git__is_ulong Unexecuted instantiation: commit.c:git__is_ulong Unexecuted instantiation: commit_graph.c:git__is_ulong Unexecuted instantiation: commit_list.c:git__is_ulong Unexecuted instantiation: config.c:git__is_ulong Unexecuted instantiation: config_cache.c:git__is_ulong Unexecuted instantiation: config_file.c:git__is_ulong Unexecuted instantiation: config_list.c:git__is_ulong Unexecuted instantiation: config_parse.c:git__is_ulong Unexecuted instantiation: config_snapshot.c:git__is_ulong Unexecuted instantiation: delta.c:git__is_ulong Unexecuted instantiation: diff.c:git__is_ulong Unexecuted instantiation: diff_driver.c:git__is_ulong Unexecuted instantiation: diff_generate.c:git__is_ulong Unexecuted instantiation: diff_print.c:git__is_ulong Unexecuted instantiation: diff_tform.c:git__is_ulong Unexecuted instantiation: email.c:git__is_ulong Unexecuted instantiation: fetch.c:git__is_ulong Unexecuted instantiation: fetchhead.c:git__is_ulong Unexecuted instantiation: filter.c:git__is_ulong Unexecuted instantiation: grafts.c:git__is_ulong Unexecuted instantiation: graph.c:git__is_ulong Unexecuted instantiation: hashsig.c:git__is_ulong Unexecuted instantiation: ident.c:git__is_ulong Unexecuted instantiation: index.c:git__is_ulong Unexecuted instantiation: index_map.c:git__is_ulong Unexecuted instantiation: indexer.c:git__is_ulong Unexecuted instantiation: iterator.c:git__is_ulong Unexecuted instantiation: mailmap.c:git__is_ulong Unexecuted instantiation: merge.c:git__is_ulong Unexecuted instantiation: midx.c:git__is_ulong Unexecuted instantiation: object.c:git__is_ulong Unexecuted instantiation: object_api.c:git__is_ulong Unexecuted instantiation: oidarray.c:git__is_ulong Unexecuted instantiation: pack-objects.c:git__is_ulong Unexecuted instantiation: parse.c:git__is_ulong Unexecuted instantiation: patch.c:git__is_ulong Unexecuted instantiation: patch_generate.c:git__is_ulong Unexecuted instantiation: path.c:git__is_ulong Unexecuted instantiation: pathspec.c:git__is_ulong Unexecuted instantiation: proxy.c:git__is_ulong Unexecuted instantiation: push.c:git__is_ulong Unexecuted instantiation: refdb.c:git__is_ulong Unexecuted instantiation: refdb_fs.c:git__is_ulong Unexecuted instantiation: reflog.c:git__is_ulong Unexecuted instantiation: refs.c:git__is_ulong Unexecuted instantiation: refspec.c:git__is_ulong Unexecuted instantiation: signature.c:git__is_ulong Unexecuted instantiation: tls.c:git__is_ulong Unexecuted instantiation: trace.c:git__is_ulong Unexecuted instantiation: transaction.c:git__is_ulong Unexecuted instantiation: auth.c:git__is_ulong Unexecuted instantiation: credential.c:git__is_ulong Unexecuted instantiation: tree-cache.c:git__is_ulong Unexecuted instantiation: sortedcache.c:git__is_ulong Unexecuted instantiation: utf8.c:git__is_ulong Unexecuted instantiation: varint.c:git__is_ulong Unexecuted instantiation: crlf.c:git__is_ulong Unexecuted instantiation: diff_file.c:git__is_ulong Unexecuted instantiation: diff_stats.c:git__is_ulong Unexecuted instantiation: diff_xdiff.c:git__is_ulong Unexecuted instantiation: ignore.c:git__is_ulong |
44 | | |
45 | | /** @return true if p fits into the range of an int */ |
46 | | GIT_INLINE(int) git__is_int(int64_t p) |
47 | 0 | { |
48 | 0 | int r = (int)p; |
49 | 0 | return p == (int64_t)r; |
50 | 0 | } Unexecuted instantiation: download_refs_fuzzer.c:git__is_int Unexecuted instantiation: fuzzer_utils.c:git__is_int Unexecuted instantiation: errors.c:git__is_int Unexecuted instantiation: runtime.c:git__is_int Unexecuted instantiation: str.c:git__is_int Unexecuted instantiation: thread.c:git__is_int Unexecuted instantiation: util.c:git__is_int Unexecuted instantiation: libgit2.c:git__is_int Unexecuted instantiation: merge_driver.c:git__is_int Unexecuted instantiation: merge_file.c:git__is_int Unexecuted instantiation: mwindow.c:git__is_int Unexecuted instantiation: odb.c:git__is_int Unexecuted instantiation: odb_loose.c:git__is_int Unexecuted instantiation: odb_pack.c:git__is_int Unexecuted instantiation: oid.c:git__is_int Unexecuted instantiation: pack.c:git__is_int Unexecuted instantiation: remote.c:git__is_int Unexecuted instantiation: repository.c:git__is_int Unexecuted instantiation: revparse.c:git__is_int Unexecuted instantiation: revwalk.c:git__is_int Unexecuted instantiation: settings.c:git__is_int Unexecuted instantiation: strarray.c:git__is_int Unexecuted instantiation: mbedtls.c:git__is_int Unexecuted instantiation: openssl.c:git__is_int Unexecuted instantiation: registry.c:git__is_int Unexecuted instantiation: socket.c:git__is_int Unexecuted instantiation: submodule.c:git__is_int Unexecuted instantiation: sysdir.c:git__is_int Unexecuted instantiation: tag.c:git__is_int Unexecuted instantiation: transport.c:git__is_int Unexecuted instantiation: git.c:git__is_int Unexecuted instantiation: http.c:git__is_int Unexecuted instantiation: httpclient.c:git__is_int Unexecuted instantiation: httpparser.c:git__is_int Unexecuted instantiation: local.c:git__is_int Unexecuted instantiation: smart.c:git__is_int Unexecuted instantiation: smart_pkt.c:git__is_int Unexecuted instantiation: smart_protocol.c:git__is_int Unexecuted instantiation: ssh_libssh2.c:git__is_int Unexecuted instantiation: tree.c:git__is_int Unexecuted instantiation: worktree.c:git__is_int Unexecuted instantiation: alloc.c:git__is_int Unexecuted instantiation: failalloc.c:git__is_int Unexecuted instantiation: stdalloc.c:git__is_int Unexecuted instantiation: date.c:git__is_int Unexecuted instantiation: filebuf.c:git__is_int Unexecuted instantiation: fs_path.c:git__is_int Unexecuted instantiation: futils.c:git__is_int Unexecuted instantiation: hash.c:git__is_int Unexecuted instantiation: net.c:git__is_int Unexecuted instantiation: pool.c:git__is_int Unexecuted instantiation: posix.c:git__is_int Unexecuted instantiation: pqueue.c:git__is_int Unexecuted instantiation: rand.c:git__is_int Unexecuted instantiation: regexp.c:git__is_int Unexecuted instantiation: tsort.c:git__is_int Unexecuted instantiation: vector.c:git__is_int Unexecuted instantiation: wildmatch.c:git__is_int Unexecuted instantiation: zstream.c:git__is_int Unexecuted instantiation: map.c:git__is_int Unexecuted instantiation: realpath.c:git__is_int Unexecuted instantiation: collisiondetect.c:git__is_int Unexecuted instantiation: sha1.c:git__is_int Unexecuted instantiation: ubc_check.c:git__is_int Unexecuted instantiation: builtin.c:git__is_int Unexecuted instantiation: annotated_commit.c:git__is_int Unexecuted instantiation: attr.c:git__is_int Unexecuted instantiation: attr_file.c:git__is_int Unexecuted instantiation: attrcache.c:git__is_int Unexecuted instantiation: blob.c:git__is_int Unexecuted instantiation: branch.c:git__is_int Unexecuted instantiation: buf.c:git__is_int Unexecuted instantiation: cache.c:git__is_int Unexecuted instantiation: checkout.c:git__is_int Unexecuted instantiation: clone.c:git__is_int Unexecuted instantiation: commit.c:git__is_int Unexecuted instantiation: commit_graph.c:git__is_int Unexecuted instantiation: commit_list.c:git__is_int Unexecuted instantiation: config.c:git__is_int Unexecuted instantiation: config_cache.c:git__is_int Unexecuted instantiation: config_file.c:git__is_int Unexecuted instantiation: config_list.c:git__is_int Unexecuted instantiation: config_parse.c:git__is_int Unexecuted instantiation: config_snapshot.c:git__is_int Unexecuted instantiation: delta.c:git__is_int Unexecuted instantiation: diff.c:git__is_int Unexecuted instantiation: diff_driver.c:git__is_int Unexecuted instantiation: diff_generate.c:git__is_int Unexecuted instantiation: diff_print.c:git__is_int Unexecuted instantiation: diff_tform.c:git__is_int Unexecuted instantiation: email.c:git__is_int Unexecuted instantiation: fetch.c:git__is_int Unexecuted instantiation: fetchhead.c:git__is_int Unexecuted instantiation: filter.c:git__is_int Unexecuted instantiation: grafts.c:git__is_int Unexecuted instantiation: graph.c:git__is_int Unexecuted instantiation: hashsig.c:git__is_int Unexecuted instantiation: ident.c:git__is_int Unexecuted instantiation: index.c:git__is_int Unexecuted instantiation: index_map.c:git__is_int Unexecuted instantiation: indexer.c:git__is_int Unexecuted instantiation: iterator.c:git__is_int Unexecuted instantiation: mailmap.c:git__is_int Unexecuted instantiation: merge.c:git__is_int Unexecuted instantiation: midx.c:git__is_int Unexecuted instantiation: object.c:git__is_int Unexecuted instantiation: object_api.c:git__is_int Unexecuted instantiation: oidarray.c:git__is_int Unexecuted instantiation: pack-objects.c:git__is_int Unexecuted instantiation: parse.c:git__is_int Unexecuted instantiation: patch.c:git__is_int Unexecuted instantiation: patch_generate.c:git__is_int Unexecuted instantiation: path.c:git__is_int Unexecuted instantiation: pathspec.c:git__is_int Unexecuted instantiation: proxy.c:git__is_int Unexecuted instantiation: push.c:git__is_int Unexecuted instantiation: refdb.c:git__is_int Unexecuted instantiation: refdb_fs.c:git__is_int Unexecuted instantiation: reflog.c:git__is_int Unexecuted instantiation: refs.c:git__is_int Unexecuted instantiation: refspec.c:git__is_int Unexecuted instantiation: signature.c:git__is_int Unexecuted instantiation: tls.c:git__is_int Unexecuted instantiation: trace.c:git__is_int Unexecuted instantiation: transaction.c:git__is_int Unexecuted instantiation: auth.c:git__is_int Unexecuted instantiation: credential.c:git__is_int Unexecuted instantiation: tree-cache.c:git__is_int Unexecuted instantiation: sortedcache.c:git__is_int Unexecuted instantiation: utf8.c:git__is_int Unexecuted instantiation: varint.c:git__is_int Unexecuted instantiation: crlf.c:git__is_int Unexecuted instantiation: diff_file.c:git__is_int Unexecuted instantiation: diff_stats.c:git__is_int Unexecuted instantiation: diff_xdiff.c:git__is_int Unexecuted instantiation: ignore.c:git__is_int |
51 | | |
52 | | /* Use clang/gcc compiler intrinsics whenever possible */ |
53 | | #if (__has_builtin(__builtin_add_overflow) || \ |
54 | | (defined(__GNUC__) && (__GNUC__ >= 5))) |
55 | | |
56 | | # if (SIZE_MAX == UINT_MAX) |
57 | | # define git__add_sizet_overflow(out, one, two) \ |
58 | | __builtin_uadd_overflow(one, two, out) |
59 | | # define git__multiply_sizet_overflow(out, one, two) \ |
60 | | __builtin_umul_overflow(one, two, out) |
61 | | # elif (SIZE_MAX == ULONG_MAX) |
62 | | # define git__add_sizet_overflow(out, one, two) \ |
63 | 2.36M | __builtin_uaddl_overflow(one, two, out) |
64 | | # define git__multiply_sizet_overflow(out, one, two) \ |
65 | 1.08M | __builtin_umull_overflow(one, two, out) |
66 | | # elif (SIZE_MAX == ULLONG_MAX) |
67 | | # define git__add_sizet_overflow(out, one, two) \ |
68 | | __builtin_uaddll_overflow(one, two, out) |
69 | | # define git__multiply_sizet_overflow(out, one, two) \ |
70 | | __builtin_umulll_overflow(one, two, out) |
71 | | # else |
72 | | # error compiler has add with overflow intrinsics but SIZE_MAX is unknown |
73 | | # endif |
74 | | |
75 | | # define git__add_int_overflow(out, one, two) \ |
76 | | __builtin_sadd_overflow(one, two, out) |
77 | | # define git__sub_int_overflow(out, one, two) \ |
78 | | __builtin_ssub_overflow(one, two, out) |
79 | | |
80 | | # define git__add_int64_overflow(out, one, two) \ |
81 | 6.52M | __builtin_add_overflow(one, two, out) |
82 | | |
83 | | /* clang on 32-bit systems produces an undefined reference to `__mulodi4`. */ |
84 | | # if !defined(__clang__) || !defined(GIT_ARCH_32) |
85 | | # define git__multiply_int64_overflow(out, one, two) \ |
86 | 13.0M | __builtin_mul_overflow(one, two, out) |
87 | | # endif |
88 | | |
89 | | /* Use Microsoft's safe integer handling functions where available */ |
90 | | #elif defined(_MSC_VER) |
91 | | |
92 | | # if !defined(ENABLE_INTSAFE_SIGNED_FUNCTIONS) |
93 | | # define ENABLE_INTSAFE_SIGNED_FUNCTIONS |
94 | | # endif |
95 | | # include <intsafe.h> |
96 | | |
97 | | # define git__add_sizet_overflow(out, one, two) \ |
98 | | (SizeTAdd(one, two, out) != S_OK) |
99 | | # define git__multiply_sizet_overflow(out, one, two) \ |
100 | | (SizeTMult(one, two, out) != S_OK) |
101 | | |
102 | | #define git__add_int_overflow(out, one, two) \ |
103 | | (IntAdd(one, two, out) != S_OK) |
104 | | #define git__sub_int_overflow(out, one, two) \ |
105 | | (IntSub(one, two, out) != S_OK) |
106 | | |
107 | | #define git__add_int64_overflow(out, one, two) \ |
108 | | (LongLongAdd(one, two, out) != S_OK) |
109 | | #define git__multiply_int64_overflow(out, one, two) \ |
110 | | (LongLongMult(one, two, out) != S_OK) |
111 | | |
112 | | #else |
113 | | |
114 | | /** |
115 | | * Sets `one + two` into `out`, unless the arithmetic would overflow. |
116 | | * @return false if the result fits in a `size_t`, true on overflow. |
117 | | */ |
118 | | GIT_INLINE(bool) git__add_sizet_overflow(size_t *out, size_t one, size_t two) |
119 | | { |
120 | | if (SIZE_MAX - one < two) |
121 | | return true; |
122 | | *out = one + two; |
123 | | return false; |
124 | | } |
125 | | |
126 | | /** |
127 | | * Sets `one * two` into `out`, unless the arithmetic would overflow. |
128 | | * @return false if the result fits in a `size_t`, true on overflow. |
129 | | */ |
130 | | GIT_INLINE(bool) git__multiply_sizet_overflow(size_t *out, size_t one, size_t two) |
131 | | { |
132 | | if (one && SIZE_MAX / one < two) |
133 | | return true; |
134 | | *out = one * two; |
135 | | return false; |
136 | | } |
137 | | |
138 | | GIT_INLINE(bool) git__add_int_overflow(int *out, int one, int two) |
139 | | { |
140 | | if ((two > 0 && one > (INT_MAX - two)) || |
141 | | (two < 0 && one < (INT_MIN - two))) |
142 | | return true; |
143 | | *out = one + two; |
144 | | return false; |
145 | | } |
146 | | |
147 | | GIT_INLINE(bool) git__sub_int_overflow(int *out, int one, int two) |
148 | | { |
149 | | if ((two > 0 && one < (INT_MIN + two)) || |
150 | | (two < 0 && one > (INT_MAX + two))) |
151 | | return true; |
152 | | *out = one - two; |
153 | | return false; |
154 | | } |
155 | | |
156 | | GIT_INLINE(bool) git__add_int64_overflow(int64_t *out, int64_t one, int64_t two) |
157 | | { |
158 | | if ((two > 0 && one > (INT64_MAX - two)) || |
159 | | (two < 0 && one < (INT64_MIN - two))) |
160 | | return true; |
161 | | *out = one + two; |
162 | | return false; |
163 | | } |
164 | | |
165 | | #endif |
166 | | |
167 | | /* If we could not provide an intrinsic implementation for this, provide a (slow) fallback. */ |
168 | | #if !defined(git__multiply_int64_overflow) |
169 | | GIT_INLINE(bool) git__multiply_int64_overflow(int64_t *out, int64_t one, int64_t two) |
170 | | { |
171 | | /* |
172 | | * Detects whether `INT64_MAX < (one * two) || INT64_MIN > (one * two)`, |
173 | | * without incurring in undefined behavior. That is done by performing the |
174 | | * comparison with a division instead of a multiplication, which translates |
175 | | * to `INT64_MAX / one < two || INT64_MIN / one > two`. Some caveats: |
176 | | * |
177 | | * - The comparison sign is inverted when both sides of the inequality are |
178 | | * multiplied/divided by a negative number, so if `one < 0` the comparison |
179 | | * needs to be flipped. |
180 | | * - `INT64_MAX / -1` itself overflows (or traps), so that case should be |
181 | | * avoided. |
182 | | * - Since the overflow flag is defined as the discrepance between the result |
183 | | * of performing the multiplication in a signed integer at twice the width |
184 | | * of the operands, and the truncated+sign-extended version of that same |
185 | | * result, there are four cases where the result is the opposite of what |
186 | | * would be expected: |
187 | | * * `INT64_MIN * -1` / `-1 * INT64_MIN` |
188 | | * * `INT64_MIN * 1 / `1 * INT64_MIN` |
189 | | */ |
190 | | if (one && two) { |
191 | | if (one > 0 && two > 0) { |
192 | | if (INT64_MAX / one < two) |
193 | | return true; |
194 | | } else if (one < 0 && two < 0) { |
195 | | if ((one == -1 && two == INT64_MIN) || |
196 | | (two == -1 && one == INT64_MIN)) { |
197 | | *out = INT64_MIN; |
198 | | return false; |
199 | | } |
200 | | if (INT64_MAX / one > two) |
201 | | return true; |
202 | | } else if (one > 0 && two < 0) { |
203 | | if ((one == 1 && two == INT64_MIN) || |
204 | | (INT64_MIN / one > two)) |
205 | | return true; |
206 | | } else if (one == -1) { |
207 | | if (INT64_MIN / two > one) |
208 | | return true; |
209 | | } else { |
210 | | if ((one == INT64_MIN && two == 1) || |
211 | | (INT64_MIN / one < two)) |
212 | | return true; |
213 | | } |
214 | | } |
215 | | *out = one * two; |
216 | | return false; |
217 | | } |
218 | | #endif |
219 | | |
220 | | #endif |