That is true, I'll have to read the C spec on the restrict syntax. One way or the other, right now Clang complains about restrict and moving it back and forth in that declaration doesn't do much.
----- Original Message ----- > > [ > > https://issues.apache.org/jira/browse/TS-1586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13503307#comment-13503307 > ] > > James Peach commented on TS-1586: > --------------------------------- > > These are not C or C++ standard library functions so I don't think > the spec quotation applies. > > The fix is probably: > uint8_t * restrict ptr > > > spdy plugin doesn't build under latest trunk > > -------------------------------------------- > > > > Key: TS-1586 > > URL: https://issues.apache.org/jira/browse/TS-1586 > > Project: Traffic Server > > Issue Type: Bug > > Affects Versions: 3.3.1 > > Environment: llvm/clang from trunk (on Linux, haven't > > tested on other platforms yet) > > Reporter: Igor Galić > > Attachments: restrict.patch > > > > > > {noformat} > > Making all in spdy > > gmake[3]: Entering directory > > `/home/igalic/src/asf/trafficserver/CLANG/plugins/experimental/spdy' > > /bin/sh ../../../libtool --tag=CXX --mode=compile clang++ > > -DHAVE_CONFIG_H -I. -I../../../../plugins/experimental/spdy > > -I../../../lib/ts -I../../../../plugins/experimental/spdy/lib > > -I../../../proxy/api -D__STDC_FORMAT_MACROS=1 > > -D_LARGEFILE64_SOURCE=1 -D_COMPILE64BIT_SOURCE=1 -D_GNU_SOURCE > > -D_REENTRANT -Dlinux -DDEBUG -D_DEBUG -std=c++11 -ggdb3 -Werror > > -Qunused-arguments -Wno-invalid-offsetof -MT message.lo -MD -MP > > -MF .deps/message.Tpo -c -o message.lo `test -f > > 'lib/spdy/message.cc' || echo > > '../../../../plugins/experimental/spdy/'`lib/spdy/message.cc > > libtool: compile: clang++ -DHAVE_CONFIG_H -I. > > -I../../../../plugins/experimental/spdy -I../../../lib/ts > > -I../../../../plugins/experimental/spdy/lib -I../../../proxy/api > > -D__STDC_FORMAT_MACROS=1 -D_LARGEFILE64_SOURCE=1 > > -D_COMPILE64BIT_SOURCE=1 -D_GNU_SOURCE -D_REENTRANT -Dlinux > > -DDEBUG -D_DEBUG -std=c++11 -ggdb3 -Werror -Qunused-arguments > > -Wno-invalid-offsetof -MT message.lo -MD -MP -MF .deps/message.Tpo > > -c ../../../../plugins/experimental/spdy/lib/spdy/message.cc > > -fPIC -DPIC -o .libs/message.o > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:72:23: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > extract(const uint8_t __restrict * &ptr) { > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:80:32: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > extract<uint8_t>(const uint8_t __restrict * &ptr) { > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:85:30: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > insert(const T& val, uint8_t __restrict * &ptr) { > > ~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:91:33: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > extract_stream_id(const uint8_t __restrict * &ptr) > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:97:46: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > insert_stream_id(uint32_t stream_id, uint8_t __restrict * &ptr) > > ~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:104:23: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const uint8_t __restrict * ptr, size_t len) > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:133:44: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const message_header& msg, uint8_t __restrict * ptr, size_t > > len) > > ~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:153:23: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const uint8_t __restrict * ptr, size_t len) > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:170:23: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const uint8_t __restrict * ptr, size_t len) > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:185:23: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const uint8_t __restrict * ptr, size_t len) > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:200:48: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const rst_stream_message& msg, uint8_t __restrict * ptr, > > size_t len) > > ~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:356:23: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const uint8_t __restrict * ptr, size_t len) > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:359:19: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const uint8_t __restrict * end = ptr + len; > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:422:23: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const uint8_t __restrict * ptr, > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:511:23: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const uint8_t __restrict * ptr, size_t len) > > ~~~~~~~~~~~~~~^~~~~~~~~~ > > ../../../../plugins/experimental/spdy/lib/spdy/message.cc:525:42: > > error: restrict requires a pointer or reference ('uint8_t' (aka > > 'unsigned char') is invalid) > > const ping_message& msg, uint8_t __restrict * ptr, size_t > > len) > > ~~~~~~~~^~~~~~~~~~ > > 16 errors generated. > > gmake[3]: *** [message.lo] Error 1 > > {noformat} > > -- > This message is automatically generated by JIRA. > If you think it was sent incorrectly, please contact your JIRA > administrators > For more information on JIRA, see: > http://www.atlassian.com/software/jira > -- Igor Galić Tel: +43 (0) 664 886 22 883 Mail: [email protected] URL: http://brainsware.org/ GPG: 6880 4155 74BD FD7C B515 2EA5 4B1D 9E08 A097 C9AE
