jckarter/clay — Issue #74: externals/abi test needs to link libm on linux
Author: jckarter
Created: 2011-12-19 22:41:13+00:00
State: open
Labels: v0.1

```
=====================
externals/abi
=====================
out.txt and err.txt mismatch
expected out.txt
----------------

Passing C arguments to Clay:
3248800164u, true, 0x1.c1a4c0p+123f, 0x1.c1a4c1a4c1a4cp+123
0x1.c1a4c0p+123f+0x1.abcdeep+99fj
0x1.c1a4c1a4c1a4cp+123+0x1.abcdefabcdefap+99j
Struct1(13953490458868236708ul)
Struct2(3248800164u)
Struct3(3248800164u, 305419896u)
Struct4(3248800164u, 305419896u, 2882382797u)
Struct5(3248800164u, 305419896u, 12379739850550389709ul)
Struct6(3248800164u, 12379739850550389709ul)
Struct7(3248800164u, 12379739850550389709ul, 305419896u)
Struct8(13953490458868236708ul, 12379739850550389709ul, 1311768465173141112ul)
Struct9(3248800164u, 0x1.c1a4c1a4c1a4cp+123)
Struct10(3248800164u, 0x1.c1a4c0p+123f)
Struct11(0x1.c1a4c1a4c1a4cp+123, 3248800164u)
Struct12(0x1.c1a4c0p+123f, 3248800164u)
Struct13(0x1.c1a4c0p+123f)
Struct14(0x1.c1a4c0p+123f, 0x1.abcdeep+99f)
Struct15(0x1.c1a4c0p+123f, 0x1.abcdeep+99f, 0x1.010102p+10f)
Struct16(0x1.c1a4c0p+123f, 0x1.abcdeep+99f, 0x1.010102p+10f, 0x1.020202p+20f, 0x1.030302p+30f)
Struct17(0x1.c1a4c1a4c1a4cp+123)
Struct18(0x1.c1a4c1a4c1a4cp+123, 0x1.abcdefabcdefap+99)
Struct19(0x1.c1a4c1a4c1a4cp+123, 0x1.abcdefabcdefap+99, 0x1.0101010101010p+10)
Struct20(0x1.c1a4c1a4c1a4cp+123, 0x1.abcdefabcdefap+99, 0x1.0101010101010p+10, 0x1.0202020202020p+20)
Struct21(0x1.c1a4c1a4c1a4cp+123, 0x1.abcdefabcdefap+99, 0x1.0101010101010p+10, 0x1.0202020202020p+20, 0x1.0303030303030p+30)
3248800164u
0x1.c1a4c0p+123f
3248800164u
0x1.c1a4c1a4c1a4cp+123
3248800164u
0x1.c1a4c0p+123f+0x1.abcdeep+99fj
3248800164u
0x1.c1a4c1a4c1a4cp+123+0x1.abcdefabcdefap+99j

Passing Clay return values to C:
c1a4c1a4 1 0x1.c1a4cp+123 0x1.c1a4c1a4c1a4cp+123
0x1.c1a4cp+123,0x1.abcdeep+99
0x1.c1a4c1a4c1a4cp+123,0x1.abcdefabcdefap+99
c1a4c1a4c1a4c1a4
c1a4c1a4
c1a4c1a4 12345678
c1a4c1a4 12345678 abcdabcd
c1a4c1a4 12345678 abcdabcdabcdabcd
c1a4c1a4 abcdabcdabcdabcd
c1a4c1a4 abcdabcdabcdabcd 12345678
c1a4c1a4c1a4c1a4 abcdabcdabcdabcd 1234567812345678
c1a4c1a4 0x1.c1a4c1a4c1a4cp+123
c1a4c1a4 0x1.c1a4cp+123
0x1.c1a4c1a4c1a4cp+123 c1a4c1a4
0x1.c1a4cp+123 c1a4c1a4
0x1.c1a4cp+123
0x1.c1a4cp+123 0x1.abcdeep+99
0x1.c1a4cp+123 0x1.abcdeep+99 0x1.010102p+10
0x1.c1a4cp+123 0x1.abcdeep+99 0x1.010102p+10 0x1.020202p+20 0x1.030302p+30
0x1.c1a4c1a4c1a4cp+123
0x1.c1a4c1a4c1a4cp+123 0x1.abcdefabcdefap+99
0x1.c1a4c1a4c1a4cp+123 0x1.abcdefabcdefap+99 0x1.010101010101p+10
0x1.c1a4c1a4c1a4cp+123 0x1.abcdefabcdefap+99 0x1.010101010101p+10 0x1.020202020202p+20
0x1.c1a4c1a4c1a4cp+123 0x1.abcdefabcdefap+99 0x1.010101010101p+10 0x1.020202020202p+20 0x1.030303030303p+30
0: c1a4c1a4
1: 0x1.c1a4cp+123
0: c1a4c1a4
1: 0x1.c1a4c1a4c1a4cp+123
0: c1a4c1a4
1: 0x1.c1a4cp+123,0x1.abcdeep+99
0: c1a4c1a4
1: 0x1.c1a4c2p+123,0x1.abcdfp+99

Passing Clay arguments to C:
c1a4c1a4 1 0x1.c1a4cp+123 0x1.c1a4c1a4c1a4cp+123
0x1.c1a4cp+123,0x1.abcdeep+99
0x1.c1a4c1a4c1a4cp+123,0x1.abcdefabcdefap+99
c1a4c1a4c1a4c1a4
c1a4c1a4
c1a4c1a4 12345678
c1a4c1a4 12345678 abcdabcd
c1a4c1a4 12345678 abcdabcdabcdabcd
c1a4c1a4 abcdabcdabcdabcd
c1a4c1a4 abcdabcdabcdabcd 12345678
c1a4c1a4c1a4c1a4 abcdabcdabcdabcd 1234567812345678
c1a4c1a4 0x1.c1a4c1a4c1a4cp+123
c1a4c1a4 0x1.c1a4cp+123
0x1.c1a4c1a4c1a4cp+123 c1a4c1a4
0x1.c1a4cp+123 c1a4c1a4
0x1.c1a4cp+123
0x1.c1a4cp+123 0x1.abcdeep+99
0x1.c1a4cp+123 0x1.abcdeep+99 0x1.010102p+10
0x1.c1a4cp+123 0x1.abcdeep+99 0x1.010102p+10 0x1.020202p+20 0x1.030302p+30
0x1.c1a4c1a4c1a4cp+123
0x1.c1a4c1a4c1a4cp+123 0x1.abcdefabcdefap+99
0x1.c1a4c1a4c1a4cp+123 0x1.abcdefabcdefap+99 0x1.010101010101p+10
0x1.c1a4c1a4c1a4cp+123 0x1.abcdefabcdefap+99 0x1.010101010101p+10 0x1.020202020202p+20
0x1.c1a4c1a4c1a4cp+123 0x1.abcdefabcdefap+99 0x1.010101010101p+10 0x1.020202020202p+20 0x1.030303030303p+30
0: c1a4c1a4
1: 0x1.c1a4cp+123
0: c1a4c1a4
1: 0x1.c1a4c1a4c1a4cp+123
0: c1a4c1a4
1: 0x1.c1a4cp+123,0x1.abcdeep+99
0: c1a4c1a4
1: 0x1.c1a4c2p+123,0x1.abcdfp+99

Passing C return values to Clay:
3248800164u, true, 0x1.c1a4c0p+123f, 0x1.c1a4c1a4c1a4cp+123
0x1.c1a4c0p+123f+0x1.abcdeep+99fj
0x1.c1a4c1a4c1a4cp+123+0x1.abcdefabcdefap+99j
Struct1(13953490458868236708ul)
Struct2(3248800164u)
Struct3(3248800164u, 305419896u)
Struct4(3248800164u, 305419896u, 2882382797u)
Struct5(3248800164u, 305419896u, 12379739850550389709ul)
Struct6(3248800164u, 12379739850550389709ul)
Struct7(3248800164u, 12379739850550389709ul, 305419896u)
Struct8(13953490458868236708ul, 12379739850550389709ul, 1311768465173141112ul)
Struct9(3248800164u, 0x1.c1a4c1a4c1a4cp+123)
Struct10(3248800164u, 0x1.c1a4c0p+123f)
Struct11(0x1.c1a4c1a4c1a4cp+123, 3248800164u)
Struct12(0x1.c1a4c0p+123f, 3248800164u)
Struct13(0x1.c1a4c0p+123f)
Struct14(0x1.c1a4c0p+123f, 0x1.abcdeep+99f)
Struct15(0x1.c1a4c0p+123f, 0x1.abcdeep+99f, 0x1.010102p+10f)
Struct16(0x1.c1a4c0p+123f, 0x1.abcdeep+99f, 0x1.010102p+10f, 0x1.020202p+20f, 0x1.030302p+30f)
Struct17(0x1.c1a4c1a4c1a4cp+123)
Struct18(0x1.c1a4c1a4c1a4cp+123, 0x1.abcdefabcdefap+99)
Struct19(0x1.c1a4c1a4c1a4cp+123, 0x1.abcdefabcdefap+99, 0x1.0101010101010p+10)
Struct20(0x1.c1a4c1a4c1a4cp+123, 0x1.abcdefabcdefap+99, 0x1.0101010101010p+10, 0x1.0202020202020p+20)
Struct21(0x1.c1a4c1a4c1a4cp+123, 0x1.abcdefabcdefap+99, 0x1.0101010101010p+10, 0x1.0202020202020p+20, 0x1.0303030303030p+30)
3248800164u
0x1.c1a4c0p+123f
3248800164u
0x1.c1a4c1a4c1a4cp+123
3248800164u
0x1.c1a4c0p+123f+0x1.abcdeep+99fj
3248800164u
0x1.c1a4c1a4c1a4cp+123+0x1.abcdefabcdefap+99j

-------------
actual output
-------------
!! error code 1

----------------
expected err.txt
----------------

-------------
actual stderr
-------------
external_test.c:159:16: warning: conversion specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
printf("%llx\n", x.a);
~~~^ ~~~
%lx
external_test.c:175:22: warning: conversion specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
printf("%x %x %llx\n", x.a, x.b, x.c);
~~~^ ~~~
%lx
external_test.c:179:19: warning: conversion specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
printf("%x %llx\n", x.a, x.b);
~~~^ ~~~
%lx
external_test.c:183:19: warning: conversion specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
printf("%x %llx %x\n", x.a, x.b, x.c);
~~~^ ~~~
%lx
external_test.c:187:16: warning: conversion specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
printf("%llx %llx %llx\n", x.a, x.b, x.c);
~~~^ ~~~
%lx
external_test.c:187:21: warning: conversion specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
printf("%llx %llx %llx\n", x.a, x.b, x.c);
~~~^ ~~~
%lx
external_test.c:187:26: warning: conversion specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
printf("%llx %llx %llx\n", x.a, x.b, x.c);
~~~^ ~~~
%lx
7 warnings generated.
temp-external_test.o: In function `c_complex_float':
external_test.c:(.text+0x7b): undefined reference to `crealf'
external_test.c:(.text+0xa5): undefined reference to `cimagf'
temp-external_test.o: In function `c_complex_double':
external_test.c:(.text+0x101): undefined reference to `creal'
external_test.c:(.text+0x12f): undefined reference to `cimag'
temp-external_test.o: In function `c_24':
external_test.c:(.text+0x74a): undefined reference to `crealf'
external_test.c:(.text+0x774): undefined reference to `cimagf'
temp-external_test.o: In function `c_25':
external_test.c:(.text+0x817): undefined reference to `crealf'
external_test.c:(.text+0x849): undefined reference to `cimagf'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```