diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-09-08 16:07:07 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-09-08 16:07:07 +0200 |
commit | 95235e64d8329b8c0fbd9311d98626afe86ad911 (patch) | |
tree | f6c9b24ce2ea44482eceebdba5fe54e104a3288e /src | |
parent | 0300e465aa9b034455f2c98d9996d5a3b04e9900 (diff) | |
download | vim-95235e64d8329b8c0fbd9311d98626afe86ad911.zip |
updated for version 7.4.026
Problem: Clang warning for int shift overflow.
Solution: Use unsigned and cast back to int. (Dominique Pelle)
Diffstat (limited to 'src')
-rw-r--r-- | src/misc2.c | 16 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/misc2.c b/src/misc2.c index 504cf0aed..b8655e84a 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -6496,13 +6496,15 @@ get3c(fd) get4c(fd) FILE *fd; { - int n; - - n = getc(fd); - n = (n << 8) + getc(fd); - n = (n << 8) + getc(fd); - n = (n << 8) + getc(fd); - return n; + /* Use unsigned rather than int otherwise result is undefined + * when left-shift sets the MSB. */ + unsigned n; + + n = (unsigned)getc(fd); + n = (n << 8) + (unsigned)getc(fd); + n = (n << 8) + (unsigned)getc(fd); + n = (n << 8) + (unsigned)getc(fd); + return (int)n; } /* diff --git a/src/version.c b/src/version.c index ff4e3bb6f..f875d013d 100644 --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 26, +/**/ 25, /**/ 24, |