diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2014-07-25 08:25:41 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2014-07-25 08:25:41 +0200 |
commit | b62a6a13b2f9a40e6ea4bf7bc2a9255429fb0bd6 (patch) | |
tree | 431e3c8db1bf31788e22f3a50497b32f5a64e233 /src | |
parent | 9746b36cf9a86ba50a666bbc8cc97a37221cb954 (diff) | |
download | libgit2-b62a6a13b2f9a40e6ea4bf7bc2a9255429fb0bd6.tar.gz |
array: mark the array to grow as volatilecmn/revwalk-no-prealloc
This works around strict aliasing rules letting some versions of
GCC (particularly on RHEL 6) thinking that they can skip updating the
size of the array when calculating the next element's offset.
Diffstat (limited to 'src')
-rw-r--r-- | src/array.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/array.h b/src/array.h index f8a48722a..af9eafa43 100644 --- a/src/array.h +++ b/src/array.h @@ -44,7 +44,7 @@ typedef git_array_t(char) git_array_generic_t; /* use a generic array for growth so this can return the new item */ GIT_INLINE(void *) git_array_grow(void *_a, size_t item_size) { - git_array_generic_t *a = _a; + volatile git_array_generic_t *a = _a; uint32_t new_size = (a->size < 8) ? 8 : a->asize * 3 / 2; char *new_array = git__realloc(a->ptr, new_size * item_size); if (!new_array) { |