diff options
| author | Edward Thomson <ethomson@edwardthomson.com> | 2021-08-25 14:11:03 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-25 14:11:03 -0400 |
| commit | c7a195a1c4da41317916141fa0cfd0aabfdecfff (patch) | |
| tree | ef89d7f19a8df8364f65e22c5fe001d0a5b5780b | |
| parent | efc4e7e56a7b8a406e37ef7b6444996b9e377cc7 (diff) | |
| parent | 4bbe5e6ea6f2084c4153fb6205115bd43db0a300 (diff) | |
| download | libgit2-c7a195a1c4da41317916141fa0cfd0aabfdecfff.tar.gz | |
Merge pull request #6006 from boretrk/c11-warnings
GCC C11 warnings
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/win32/path_w32.c | 12 | ||||
| -rw-r--r-- | src/win32/reparse.h | 8 | ||||
| -rw-r--r-- | tests/core/link.c | 10 |
4 files changed, 16 insertions, 15 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a9f544174..fd046eb5c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -235,6 +235,7 @@ ELSE () enable_warnings(unused-function) enable_warnings(int-conversion) enable_warnings(c11-extensions) + enable_warnings(c99-c11-compat) # MinGW uses gcc, which expects POSIX formatting for printf, but # uses the Windows C library, which uses its own format specifiers. diff --git a/src/win32/path_w32.c b/src/win32/path_w32.c index 581673b1b..e6640c85e 100644 --- a/src/win32/path_w32.c +++ b/src/win32/path_w32.c @@ -381,14 +381,14 @@ int git_win32_path_readlink_w(git_win32_path dest, const git_win32_path path) switch (reparse_buf->ReparseTag) { case IO_REPARSE_TAG_SYMLINK: - target = reparse_buf->SymbolicLinkReparseBuffer.PathBuffer + - (reparse_buf->SymbolicLinkReparseBuffer.SubstituteNameOffset / sizeof(WCHAR)); - target_len = reparse_buf->SymbolicLinkReparseBuffer.SubstituteNameLength / sizeof(WCHAR); + target = reparse_buf->ReparseBuffer.SymbolicLink.PathBuffer + + (reparse_buf->ReparseBuffer.SymbolicLink.SubstituteNameOffset / sizeof(WCHAR)); + target_len = reparse_buf->ReparseBuffer.SymbolicLink.SubstituteNameLength / sizeof(WCHAR); break; case IO_REPARSE_TAG_MOUNT_POINT: - target = reparse_buf->MountPointReparseBuffer.PathBuffer + - (reparse_buf->MountPointReparseBuffer.SubstituteNameOffset / sizeof(WCHAR)); - target_len = reparse_buf->MountPointReparseBuffer.SubstituteNameLength / sizeof(WCHAR); + target = reparse_buf->ReparseBuffer.MountPoint.PathBuffer + + (reparse_buf->ReparseBuffer.MountPoint.SubstituteNameOffset / sizeof(WCHAR)); + target_len = reparse_buf->ReparseBuffer.MountPoint.SubstituteNameLength / sizeof(WCHAR); break; default: errno = EINVAL; diff --git a/src/win32/reparse.h b/src/win32/reparse.h index 5f7408a1b..23312319f 100644 --- a/src/win32/reparse.h +++ b/src/win32/reparse.h @@ -26,18 +26,18 @@ typedef struct _GIT_REPARSE_DATA_BUFFER { USHORT PrintNameLength; ULONG Flags; WCHAR PathBuffer[1]; - } SymbolicLinkReparseBuffer; + } SymbolicLink; struct { USHORT SubstituteNameOffset; USHORT SubstituteNameLength; USHORT PrintNameOffset; USHORT PrintNameLength; WCHAR PathBuffer[1]; - } MountPointReparseBuffer; + } MountPoint; struct { UCHAR DataBuffer[1]; - } GenericReparseBuffer; - }; + } Generic; + } ReparseBuffer; } GIT_REPARSE_DATA_BUFFER; #define REPARSE_DATA_HEADER_SIZE 8 diff --git a/tests/core/link.c b/tests/core/link.c index 1e5ed454c..0493edf1d 100644 --- a/tests/core/link.c +++ b/tests/core/link.c @@ -123,7 +123,7 @@ static void do_junction(const char *old, const char *new) reparse_buf = LocalAlloc(LMEM_FIXED|LMEM_ZEROINIT, reparse_buflen); cl_assert(reparse_buf); - subst_utf16 = reparse_buf->MountPointReparseBuffer.PathBuffer; + subst_utf16 = reparse_buf->ReparseBuffer.MountPoint.PathBuffer; print_utf16 = subst_utf16 + subst_utf16_len + 1; ret = git__utf8_to_16(subst_utf16, subst_utf16_len + 1, @@ -135,10 +135,10 @@ static void do_junction(const char *old, const char *new) cl_assert_equal_i(print_utf16_len, ret); reparse_buf->ReparseTag = IO_REPARSE_TAG_MOUNT_POINT; - reparse_buf->MountPointReparseBuffer.SubstituteNameOffset = 0; - reparse_buf->MountPointReparseBuffer.SubstituteNameLength = subst_byte_len; - reparse_buf->MountPointReparseBuffer.PrintNameOffset = (USHORT)(subst_byte_len + sizeof(WCHAR)); - reparse_buf->MountPointReparseBuffer.PrintNameLength = print_byte_len; + reparse_buf->ReparseBuffer.MountPoint.SubstituteNameOffset = 0; + reparse_buf->ReparseBuffer.MountPoint.SubstituteNameLength = subst_byte_len; + reparse_buf->ReparseBuffer.MountPoint.PrintNameOffset = (USHORT)(subst_byte_len + sizeof(WCHAR)); + reparse_buf->ReparseBuffer.MountPoint.PrintNameLength = print_byte_len; reparse_buf->ReparseDataLength = reparse_buflen - REPARSE_DATA_HEADER_SIZE; cl_win32_pass(DeviceIoControl(handle, FSCTL_SET_REPARSE_POINT, |
