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

Reply via email to