|
From: Cédric L. <la...@ok...> - 2011-02-01 16:37:40
|
Hello,
I'm new on this mailing list.
I have the following error when I compile valgrind 3.6.0 :
> priv/guest_arm_toIR.c(10988): error #1909: complex integral types are
> not supported
> if (rT == 15 || (isT && rT == 13) || size == 3i || (Q && (rD &
> 1))) {
I use Intel 12.0.0.084 and Intel mpi 4.0.1.007.
Please do you have an idea about this error ?
Regards,
Cédric.
|
|
From: Julian S. <js...@ac...> - 2011-02-01 23:42:28
|
On Tuesday, February 01, 2011, Cédric Lachat wrote:
> Hello,
>
> I'm new on this mailing list.
>
> I have the following error when I compile valgrind 3.6.0 :
> > priv/guest_arm_toIR.c(10988): error #1909: complex integral types are
> > not supported
> >
> > if (rT == 15 || (isT && rT == 13) || size == 3i || (Q && (rD &
> >
> > 1))) {
It's the "size == 3i" bit. I guess that's a typo, but why gcc accepts it,
who knows. (Well, not me, anyway).
What happens if you change "3i" to "3" ?
J
|
|
From: Cédric L. <la...@ok...> - 2011-02-02 07:27:10
|
Hello,
On 02/02/2011 12:38 AM, Julian Seward wrote:
> On Tuesday, February 01, 2011, Cédric Lachat wrote:
>> Hello,
>>
>> I'm new on this mailing list.
>>
>> I have the following error when I compile valgrind 3.6.0 :
>>> priv/guest_arm_toIR.c(10988): error #1909: complex integral types are
>>> not supported
>>>
>>> if (rT == 15 || (isT && rT == 13) || size == 3i || (Q && (rD &
>>>
>>> 1))) {
> It's the "size == 3i" bit. I guess that's a typo, but why gcc accepts it,
> who knows. (Well, not me, anyway).
>
> What happens if you change "3i" to "3" ?
The file compiles but is it correct ?
> J
>
Regards,
Cédric.
|
|
From: Julian S. <js...@ac...> - 2011-02-02 11:56:51
|
On Wednesday, February 02, 2011, Cédric Lachat wrote: > > It's the "size == 3i" bit. I guess that's a typo, but why gcc accepts > > it, who knows. (Well, not me, anyway). > > > > What happens if you change "3i" to "3" ? > > The file compiles but is it correct ? Well, size is a 32-bit unsigned int, so it's just trying to compute "size == 3". The question is why does gcc accept this trailing "i" on the 3. J |
|
From: Tom H. <to...@co...> - 2011-02-02 12:47:41
|
On 02/02/11 11:57, Julian Seward wrote: > Well, size is a 32-bit unsigned int, so it's just trying to > compute "size == 3". The question is why does gcc accept this > trailing "i" on the 3. Easy, it's a complex constant ;-) See: http://gcc.gnu.org/onlinedocs/gcc/Complex.html Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Josef W. <Jos...@gm...> - 2011-02-02 12:53:29
|
Hi, On Wednesday 02 February 2011, Julian Seward wrote: > On Wednesday, February 02, 2011, Cédric Lachat wrote: > > > > It's the "size == 3i" bit. I guess that's a typo, but why gcc accepts > > > it, who knows. (Well, not me, anyway). > > > > > > What happens if you change "3i" to "3" ? > > > > The file compiles but is it correct ? > > Well, size is a 32-bit unsigned int, so it's just trying to > compute "size == 3". The question is why does gcc accept this > trailing "i" on the 3. I was curious and looked it up. Complex float numbers are C99, so "3.0i" is a complex literal with real value 0.0 and imaginary value 3.0. As GCC extension, gcc accepts complex integer numbers with the same notation. It looks like GCC parses "3i" as complex integer literal, and implicitly casts to a regular integer without warning, which then would become "size == 0", which obviously is not the right thing here. Josef > > J > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users > |
|
From: Julian S. <js...@ac...> - 2011-02-02 13:32:17
|
On Wednesday, February 02, 2011, Josef Weidendorfer wrote: > It looks like GCC parses "3i" as complex integer literal, and implicitly > casts to a regular integer without warning, which then would become "size > == 0", which obviously is not the right thing here. Makes sense, except that what it appears to cast it to is "size == 3" not "size == 0". Trying "size == 0" causes vassert(0) to happen a few lines later when running the NEON instruction set tests, whereas "size == 3" works. (See guest_arm_toIR.c:10988 and the two switches just after that). Cédric, thanks for finding that! J |
|
From: Cédric L. <la...@ok...> - 2011-02-02 13:58:17
|
Hi, On 02/02/2011 02:32 PM, Julian Seward wrote: > On Wednesday, February 02, 2011, Josef Weidendorfer wrote: > >> It looks like GCC parses "3i" as complex integer literal, and implicitly >> casts to a regular integer without warning, which then would become "size >> == 0", which obviously is not the right thing here. > Makes sense, except that what it appears to cast it to is "size == 3" > not "size == 0". Trying "size == 0" causes vassert(0) to happen a few > lines later when running the NEON instruction set tests, whereas > "size == 3" works. (See guest_arm_toIR.c:10988 and the two switches > just after that). > > Cédric, thanks for finding that! > > J You're welcome :-) I found it by chance. Cédric. |