This repository has been archived by the owner on Nov 4, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 73
GCC align attribute #13
Open
killdaclick
wants to merge
112
commits into
jmckaskill:master
Choose a base branch
from
killdaclick:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Conflicts: capn-malloc.c
Fixes a compiler warning.
No real need to build a gtest archive, gtest-all.cc includes all the files so a single .o is fine.
It is not used and we already validated the total buffer size beforehand.
Should make it a bit more readable, the variable is used before that case as well but doesn't require the zero initialization in that case.
The hdr variable gets the same constants as value but it is easier to understand that the constants are used than the hdr which needs to be traced to the value it received.
The header of packing is a single byte and nothing was written to the first byte anyway.
This uses the capn_deflate function. The current use may get smaller packing than the maximum possible due to the inability to peak around segments as it packs each segment on its own. This saves time compared to copying everything into one place and saves effort by not requiring to change the interface of capn_deflate to support multiple different buffers. It should be possible to make the capn_deflate state machine better to handle the multiple buffers case too.
…oogletest/downloads/list no changes to existing code
…ored gtest-all.cpp builds cleanly (minus a couple warnings in the test code itself) on OS X 10.10.4 with “Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)”
previously, this was emitting the following warning (treated as error): `c++ -g -Wall -Werror -I. -Igtest-1.7.0/include -o capn-test.o -c capn-test.cpp capn-test.cpp:66:29: error: unused variable 'SUBSTRUCT_DEFAULT' [-Werror,-Wunused-const-variable] static const AlignedData<2> SUBSTRUCT_DEFAULT = {{0,0,0,0,1,0,0,0, 0,0,0,0,0,0,0,0}}; ^ capn-test.cpp:67:29: error: unused variable 'STRUCTLIST_ELEMENT_SUBSTRUCT_DEFAULT' [-Werror,-Wunused-const-variable] static const AlignedData<2> STRUCTLIST_ELEMENT_SUBSTRUCT_DEFAULT = ^`
…inux build fails without it)
Add build instructions
ssize_t is not available in visual studio, nor is sys/param.h We typedef intmax_t to ssize_t
Visual studio's execution flow analysis insists that (e) could be undefined. I don't see it, but this permits compilation.
Unless capn_segment is defined with __declspec(align(64)), check_segment_alignment fails to compile in x86 mode, as (sizeof(struct capn_segment)&7) -> (44 & 7) evaluates to 4 Always compiles in x64 mode, as (sizeof(struct capn_segment)&7) -> (80 & 7) evaluates to 0
…ndian start making endianness switch less weird
…ricter.compilers working with stricter compiler flags
neither Windows nor OSX have endian.h autoconf checking this makes things worse on Windows too, so let's just try endian.h on "unix" systems.
Strict aliasing prohibits writing to union members of one type, then reading another type. The read is undefined. Use memcpy instead (which compilers will hopefully optimize away...)
allows changing output filenames from "foo.capnp.c" to "foo.capnpSOMETHING.c" where SOMETHING is the argument to the annotation.
init_fp itself tries to read 4 bytes for the segment count.
Missing braces end up scaling the offset by * 4 ... which is actually a stack/heap overflow.
There is no point in having these functions be part of the public API.
This reverts commit 1afce95. Turns out this is a misunderstanding of the C standard... meh.
Fixes github issue opensourcerouting#11, also makes it easier to use annotations.
Generating per-field getters/setters adds a lot of functions; this makes them switchable with an annotation in the source schema.
This fixes #include output when $C.nameinfix is used.
Would not cross compile for 32bit ARM.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added align attribute for GCC.
Would not cross compile for 32bit ARM.