Skip to content

Commit 91a3ffa

Browse files
committed
Fixed _Generic mpack_write() string literals under Clang
1 parent 752bc30 commit 91a3ffa

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/mpack/mpack-writer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -808,7 +808,7 @@ MPACK_HEADER_END
808808
* types when passed uncast, so be careful when using them.
809809
*/
810810
#define mpack_write(writer, value) \
811-
_Generic((value), \
811+
_Generic(((void)0, value), \
812812
int8_t: mpack_write_i8, \
813813
int16_t: mpack_write_i16, \
814814
int32_t: mpack_write_i32, \

test/test-write.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,10 @@ static void test_write_generic(void) {
885885
// const char *
886886
TEST_SIMPLE_WRITE("\xc0", mpack_write(&writer, (const char *)NULL));
887887
TEST_SIMPLE_WRITE("\xa4""1337", mpack_write(&writer, (const char *)"1337"));
888+
889+
// string literals
890+
TEST_SIMPLE_WRITE("\xa0", mpack_write(&writer, ""));
891+
TEST_SIMPLE_WRITE("\xa4""1337", mpack_write(&writer, "1337"));
888892
}
889893

890894
static void test_write_generic_kv(void) {
@@ -909,9 +913,11 @@ static void test_write_generic_kv(void) {
909913
TEST_SIMPLE_WRITE("\xa3""foo""\xcb\xc0\x09\x21\xfb\x53\xc8\xd4\xf1", mpack_write_kv(&writer, key, (double)-3.14159265));
910914
TEST_SIMPLE_WRITE("\xa3""foo""\xc2", mpack_write_kv(&writer, key, (bool)false));
911915

912-
// char *, const char *
916+
// char *, const char *, literal
913917
TEST_SIMPLE_WRITE("\xa3""foo""\xa3""bar", mpack_write_kv(&writer, key, (char *)value));
914918
TEST_SIMPLE_WRITE("\xa3""foo""\xa3""bar", mpack_write_kv(&writer, key, (const char *)value));
919+
TEST_SIMPLE_WRITE("\xa3""foo""\xa3""bar", mpack_write_kv(&writer, key, value));
920+
TEST_SIMPLE_WRITE("\xa3""foo""\xa3""bar", mpack_write_kv(&writer, key, "bar"));
915921
}
916922

917923
#endif

0 commit comments

Comments
 (0)