[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: test for restrict fails with MS compiler
From: |
Ralf Wildenhues |
Subject: |
Re: test for restrict fails with MS compiler |
Date: |
Fri, 13 Jul 2007 08:07:19 +0200 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
Hello Jerker,
* Jerker Bäck wrote on Tue, Jul 10, 2007 at 06:23:21PM CEST:
> Hello Ralf,
> > That would be a bug in MSVC, right?
> Generally speaking, the error have not so much to do with the restrict
> keyword. This only affects when you typedef a custom type and later try to
> change its behaviour. The MS compiler is known to look deep when preprocess
> and make warnings or errors according to certain rules. The limitation here
> is probably intentional, not a bug. My comment on this was only that I agree
> with the compiler. Don't you?
No, I don't. ISO C99 allows to add type qualifiers directly as well as
indirectly via typedefs. For example, in 6.7.3(4) it says:
| If the same qualifier appears more than once in the same
| specifier-qualifier-list, either directly or via one or more typedefs,
| the behavior is the same as if it appeared only once.
And the Syntax in 6.7(1) is quite clear in that a type-qualifier (such
as restrict) can appear in addition to a type-specifier (such as a
typedef name).
So IMVHO the Autoconf test is just prudent in detecting this compiler
bug.
> In the real world, GNU regex is using the restrict keyword in its
> prototypes:
> extern int __cdecl regcomp (re_pattern_buffer_t* __restrict, const char*
> __restrict, int);
> - Works for me. Note the difference from the test declarations.
>
> Anyway, if autoconf wish to support the MS compiler, the change in the test
> is simple.
Is there a misunderstanding here? Autoconf supports MSVC wrt. restrict:
it will add
#define restrict
to config.h which will cause code like in the configure test to be
compiled successfully by MSVC, no?
Hope this clears things up.
> FYI the environment is x86_64 Interix 6 (Vista x64 SUA) AFAIK the restrict
> keyword is not supported for MS compilers < 1400 I will test with the Intel
> compiler to see if there are any differences. My icc shell script is not
> quite ready though.
That would be good in any case, independently of the above. Thanks.
Cheers,
Ralf
- test for restrict fails with MS compiler, Jerker Bäck, 2007/07/10
- Re: test for restrict fails with MS compiler, Ralf Wildenhues, 2007/07/10
- RE: test for restrict fails with MS compiler, Jerker Bäck, 2007/07/10
- Re: test for restrict fails with MS compiler,
Ralf Wildenhues <=
- RE: test for restrict fails with MS compiler, Jerker Bäck, 2007/07/18
- Re: test for restrict fails with MS compiler, Noah Misch, 2007/07/18
- RE: test for restrict fails with MS compiler, Jerker Bäck, 2007/07/19
- Re: test for restrict fails with MS compiler, Ralf Wildenhues, 2007/07/19
- Re: test for restrict fails with MS compiler, Ralf Wildenhues, 2007/07/19
- RE: test for restrict fails with MS compiler, Jerker Bäck, 2007/07/19
- Re: test for restrict fails with MS compiler, Ralf Wildenhues, 2007/07/22
- RE: test for restrict fails with MS compiler, Jerker Bäck, 2007/07/22