History

Fixed silly error in Windows build of tests (abitest-cc not linking to libtcc)

I really should do this when less tired; I keep breaking one platform while fixing another. I've also fixed some Windows issues with tcctest since Windows printf() uses different format flags to those on Linux, and removed some conditional compilation tests in tcctest since they now should work.

James Lyon committed 13 years ago

Commit 41d76e11 parent ae2ece92 files · +34 −33Browse files

Unified · Split

2 files
  1. tests/CMakeLists.txt +2 −3
  2. tests/tcctest.c +32 −30
tests/CMakeLists.txt+2−3
@@ -5,13 +5,12 @@ if(WIN32) · 4 unmodified lines
5 set(TCC_CFLAGS ${TCC_CFLAGS} -I${CMAKE_SOURCE_DIR}/win32/include)5 set(TCC_CFLAGS ${TCC_CFLAGS} -I${CMAKE_SOURCE_DIR}/win32/include)
6else()6else()
7 set(TCC_MATH_LDFLAGS -lm)7 set(TCC_MATH_LDFLAGS -lm)
8 set(LIBTCC_EXTRA_LIBS dl)
8 set(LIBTCC_LDFLAGS -ldl -lm -Wl,-rpath=${CMAKE_BINARY_DIR})9 set(LIBTCC_LDFLAGS -ldl -lm -Wl,-rpath=${CMAKE_BINARY_DIR})
9endif()10endif()
10 11
11add_executable(abitest-cc abitest.c)12add_executable(abitest-cc abitest.c)
12if(NOT WIN32)13target_link_libraries(abitest-cc libtcc ${LIBTCC_EXTRA_LIBS})
13 target_link_libraries(abitest-cc libtcc dl)
14endif()
15add_test(NAME abitest-cc WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMAND abitest-cc lib_path=${CMAKE_BINARY_DIR} include=${CMAKE_SOURCE_DIR}/include)14add_test(NAME abitest-cc WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMAND abitest-cc lib_path=${CMAKE_BINARY_DIR} include=${CMAKE_SOURCE_DIR}/include)
16 15
17set(ABITEST_TCC abitest-tcc${CMAKE_EXECUTABLE_SUFFIX})16set(ABITEST_TCC abitest-tcc${CMAKE_EXECUTABLE_SUFFIX})
tests/tcctest.c+32−30
@@ -16,6 +16,14 @@ · 15 unmodified lines
16 16
17#endif17#endif
18 18
19#if defined(_WIN32)
20#define LONG_LONG_FORMAT "%lld"
21#define ULONG_LONG_FORMAT "%llu"
22#else
23#define LONG_LONG_FORMAT "%Ld"
24#define ULONG_LONG_FORMAT "%Lu"
25#endif
26
19// MinGW has 80-bit rather than 64-bit long double which isn't compatible with TCC or MSVC27// MinGW has 80-bit rather than 64-bit long double which isn't compatible with TCC or MSVC
20#if defined(_WIN32) && defined(__GNUC__)28#if defined(_WIN32) && defined(__GNUC__)
21#define LONG_DOUBLE double29#define LONG_DOUBLE double
@@ -263,7 +271,7 @@ void macro_test(void) · 241 unmodified lines
263 printf("func='%s'\n", __FUNCTION__);271 printf("func='%s'\n", __FUNCTION__);
264 272
265 /* complicated macros in glibc */273 /* complicated macros in glibc */
266 printf("INT64_MIN=%Ld\n", INT64_MIN);274 printf("INT64_MIN=" LONG_LONG_FORMAT "\n", INT64_MIN);
267 {275 {
268 int a;276 int a;
269 a = 1;277 a = 1;
@@ -1711,19 +1719,19 @@ void lloptest(long long a, long long b) · 1441 unmodified lines
1711 ua = a;1719 ua = a;
1712 ub = b;1720 ub = b;
1713 /* arith */1721 /* arith */
1714 printf("arith: %Ld %Ld %Ld\n",1722 printf("arith: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n",
1715 a + b,1723 a + b,
1716 a - b,1724 a - b,
1717 a * b);1725 a * b);
1718 1726
1719 if (b != 0) {1727 if (b != 0) {
1720 printf("arith1: %Ld %Ld\n",1728 printf("arith1: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n",
1721 a / b,1729 a / b,
1722 a % b);1730 a % b);
1723 }1731 }
1724 1732
1725 /* binary */1733 /* binary */
1726 printf("bin: %Ld %Ld %Ld\n",1734 printf("bin: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n",
1727 a & b,1735 a & b,
1728 a | b,1736 a | b,
1729 a ^ b);1737 a ^ b);
@@ -1748,25 +1756,25 @@ void lloptest(long long a, long long b) · 18 unmodified lines
1748 /* arith2 */1756 /* arith2 */
1749 a++;1757 a++;
1750 b++;1758 b++;
1751 printf("arith2: %Ld %Ld\n", a, b);1759 printf("arith2: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n", a, b);
1752 printf("arith2: %Ld %Ld\n", a++, b++);1760 printf("arith2: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n", a++, b++);
1753 printf("arith2: %Ld %Ld\n", --a, --b);1761 printf("arith2: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n", --a, --b);
1754 printf("arith2: %Ld %Ld\n", a, b);1762 printf("arith2: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n", a, b);
1755 b = ub = 0;1763 b = ub = 0;
1756 printf("not: %d %d %d %d\n", !a, !ua, !b, !ub);1764 printf("not: %d %d %d %d\n", !a, !ua, !b, !ub);
1757}1765}
1758 1766
1759void llshift(long long a, int b)1767void llshift(long long a, int b)
1760{1768{
1761 printf("shift: %Ld %Ld %Ld\n",1769 printf("shift: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n",
1762 (unsigned long long)a >> b,1770 (unsigned long long)a >> b,
1763 a >> b,1771 a >> b,
1764 a << b);1772 a << b);
1765 printf("shiftc: %Ld %Ld %Ld\n",1773 printf("shiftc: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n",
1766 (unsigned long long)a >> 3,1774 (unsigned long long)a >> 3,
1767 a >> 3,1775 a >> 3,
1768 a << 3);1776 a << 3);
1769 printf("shiftc: %Ld %Ld %Ld\n",1777 printf("shiftc: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n",
1770 (unsigned long long)a >> 35,1778 (unsigned long long)a >> 35,
1771 a >> 35,1779 a >> 35,
1772 a << 35);1780 a << 35);
@@ -1783,7 +1791,7 @@ void llfloat(void) · 10 unmodified lines
1783 ula = 0x72345678;1791 ula = 0x72345678;
1784 la = (la << 20) | 0x12345;1792 la = (la << 20) | 0x12345;
1785 ula = ula << 33;1793 ula = ula << 33;
1786 printf("la=%Ld ula=%Lu\n", la, ula);1794 printf("la=" LONG_LONG_FORMAT " ula=" ULONG_LONG_FORMAT "\n", la, ula);
1787 1795
1788 fa = la;1796 fa = la;
1789 da = la;1797 da = la;
@@ -1793,7 +1801,7 @@ void llfloat(void) · 3 unmodified lines
1793 la = fa;1801 la = fa;
1794 lb = da;1802 lb = da;
1795 lc = lda;1803 lc = lda;
1796 printf("ftoll: %Ld %Ld %Ld\n", la, lb, lc);1804 printf("ftoll: " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n", la, lb, lc);
1797 1805
1798 fa = ula;1806 fa = ula;
1799 da = ula;1807 da = ula;
@@ -1803,7 +1811,7 @@ void llfloat(void) · 3 unmodified lines
1803 ula = fa;1811 ula = fa;
1804 ulb = da;1812 ulb = da;
1805 ulc = lda;1813 ulc = lda;
1806 printf("ftoull: %Lu %Lu %Lu\n", ula, ulb, ulc);1814 printf("ftoull: " ULONG_LONG_FORMAT " " ULONG_LONG_FORMAT " " ULONG_LONG_FORMAT "\n", ula, ulb, ulc);
1807}1815}
1808 1816
1809long long llfunc1(int a)1817long long llfunc1(int a)
@@ -1832,14 +1840,14 @@ void longlong_test(void) · 22 unmodified lines
1832 ua = -2;1840 ua = -2;
1833 a = ia;1841 a = ia;
1834 b = ua;1842 b = ua;
1835 printf("%Ld %Ld\n", a, b);1843 printf(LONG_LONG_FORMAT " " LONG_LONG_FORMAT "\n", a, b);
1836 printf("%Ld %Ld %Ld %Lx\n", 1844 printf(LONG_LONG_FORMAT " " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " %Lx\n",
1837 (long long)1, 1845 (long long)1,
1838 (long long)-2,1846 (long long)-2,
1839 1LL,1847 1LL,
1840 0x1234567812345679);1848 0x1234567812345679);
1841 a = llfunc1(-3);1849 a = llfunc1(-3);
1842 printf("%Ld\n", a);1850 printf(LONG_LONG_FORMAT "\n", a);
1843 1851
1844 lloptest(1000, 23);1852 lloptest(1000, 23);
1845 lloptest(0xff, 0x1234);1853 lloptest(0xff, 0x1234);
@@ -1880,7 +1888,7 @@ void longlong_test(void) · 34 unmodified lines
1880 b = 4294967295LL;1888 b = 4294967295LL;
1881 printf("%d %d %d %d\n", a > b, a < b, a >= b, a <= b);1889 printf("%d %d %d %d\n", a > b, a < b, a >= b, a <= b);
1882 1890
1883 printf("%Ld\n", 0x123456789LLU);1891 printf(LONG_LONG_FORMAT "\n", 0x123456789LLU);
1884}1892}
1885 1893
1886void manyarg_test(void)1894void manyarg_test(void)
@@ -1891,34 +1899,31 @@ void manyarg_test(void) · 4 unmodified lines
1891 1, 2, 3, 4, 5, 6, 7, 8,1899 1, 2, 3, 4, 5, 6, 7, 8,
1892 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0);1900 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0);
1893 printf("%d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f %f %f "1901 printf("%d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f %f %f "
1894 "%Ld %Ld %f %f\n",1902 LONG_LONG_FORMAT " " LONG_LONG_FORMAT " %f %f\n",
1895 1, 2, 3, 4, 5, 6, 7, 8,1903 1, 2, 3, 4, 5, 6, 7, 8,
1896 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0,1904 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0,
1897 1234567891234LL, 987654321986LL,1905 1234567891234LL, 987654321986LL,
1898 42.0, 43.0);1906 42.0, 43.0);
1899 printf("%Lf %d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f %f %f "1907 printf("%Lf %d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f %f %f "
1900 "%Ld %Ld %f %f\n",1908 LONG_LONG_FORMAT " " LONG_LONG_FORMAT " %f %f\n",
1901 ld, 1, 2, 3, 4, 5, 6, 7, 8,1909 ld, 1, 2, 3, 4, 5, 6, 7, 8,
1902 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0,1910 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0,
1903 1234567891234LL, 987654321986LL,1911 1234567891234LL, 987654321986LL,
1904 42.0, 43.0);1912 42.0, 43.0);
1905 /* XXX: known bug of x86-64 */
1906#ifndef __x86_64__
1907 printf("%d %d %d %d %d %d %d %d %Lf\n",1913 printf("%d %d %d %d %d %d %d %d %Lf\n",
1908 1, 2, 3, 4, 5, 6, 7, 8, ld);1914 1, 2, 3, 4, 5, 6, 7, 8, ld);
1909 printf("%d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f %f %f "1915 printf("%d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f %f %f "
1910 "%Ld %Ld %f %f %Lf\n",1916 LONG_LONG_FORMAT " " LONG_LONG_FORMAT "%f %f %Lf\n",
1911 1, 2, 3, 4, 5, 6, 7, 8,1917 1, 2, 3, 4, 5, 6, 7, 8,
1912 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0,1918 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0,
1913 1234567891234LL, 987654321986LL,1919 1234567891234LL, 987654321986LL,
1914 42.0, 43.0, ld);1920 42.0, 43.0, ld);
1915 printf("%d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f %f %f "1921 printf("%d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f %f %f "
1916 "%Lf %Ld %Ld %f %f %Lf\n",1922 "%Lf " LONG_LONG_FORMAT " " LONG_LONG_FORMAT " %f %f %Lf\n",
1917 1, 2, 3, 4, 5, 6, 7, 8,1923 1, 2, 3, 4, 5, 6, 7, 8,
1918 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0,1924 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0,
1919 ld, 1234567891234LL, 987654321986LL,1925 ld, 1234567891234LL, 987654321986LL,
1920 42.0, 43.0, ld);1926 42.0, 43.0, ld);
1921#endif
1922}1927}
1923 1928
1924void vprintf1(const char *fmt, ...)1929void vprintf1(const char *fmt, ...)
@@ -1954,7 +1959,7 @@ void vprintf1(const char *fmt, ...) · 29 unmodified lines
1954 break;1959 break;
1955 case 'l':1960 case 'l':
1956 ll = va_arg(ap, long long);1961 ll = va_arg(ap, long long);
1957 printf("%Ld", ll);1962 printf(LONG_LONG_FORMAT, ll);
1958 break;1963 break;
1959 case 'F':1964 case 'F':
1960 ld = va_arg(ap, LONG_DOUBLE);1965 ld = va_arg(ap, LONG_DOUBLE);
@@ -1999,11 +2004,8 @@ void stdarg_test(void) · 38 unmodified lines
1999 vprintf1("%f %d %f\n", 1.0, 2, 3.0);2004 vprintf1("%f %d %f\n", 1.0, 2, 3.0);
2000 vprintf1("%l %l %d %f\n", 1234567891234LL, 987654321986LL, 3, 1234.0);2005 vprintf1("%l %l %d %f\n", 1234567891234LL, 987654321986LL, 3, 1234.0);
2001 vprintf1("%F %F %F\n", LONG_DOUBLE_LITERAL(1.2), LONG_DOUBLE_LITERAL(2.3), LONG_DOUBLE_LITERAL(3.4));2006 vprintf1("%F %F %F\n", LONG_DOUBLE_LITERAL(1.2), LONG_DOUBLE_LITERAL(2.3), LONG_DOUBLE_LITERAL(3.4));
2002#ifdef __x86_64__
2003 /* a bug of x86's TCC */
2004 vprintf1("%d %f %l %F %d %f %l %F\n",2007 vprintf1("%d %f %l %F %d %f %l %F\n",
2005 1, 1.2, 3L, 4.5L, 6, 7.8, 9L, 0.1L);2008 1, 1.2, 3LL, LONG_DOUBLE_LITERAL(4.5), 6, 7.8, 9LL, LONG_DOUBLE_LITERAL(0.1));
2006#endif
2007 vprintf1("%d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f\n",2009 vprintf1("%d %d %d %d %d %d %d %d %f %f %f %f %f %f %f %f\n",
2008 1, 2, 3, 4, 5, 6, 7, 8,2010 1, 2, 3, 4, 5, 6, 7, 8,
2009 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8);2011 0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t