]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix compilation issues with MSVC related to C99.
authormistachkin <mistachkin@noemail.net>
Wed, 9 Dec 2020 23:35:51 +0000 (23:35 +0000)
committermistachkin <mistachkin@noemail.net>
Wed, 9 Dec 2020 23:35:51 +0000 (23:35 +0000)
FossilOrigin-Name: c0de6c1fb2c486be1da01e5e4ca8c5634ba37822e418d57f272e018c3e3fc0a2

manifest
manifest.uuid
src/func.c
src/sqliteInt.h

index 12a9b3e68c9fbbf138f6dc119bbe404252a414ba..617f92a7f306c51d05e6c64f5645f91e6cddb093 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\stests\sfor\sa\s'delete'\scommand\son\sa\scontentless\stable\swhere\svalues\sthat\sweren't\sactually\sinserted\sare\sNULL.
-D 2020-12-09T16:49:28.314
+C Fix\scompilation\sissues\swith\sMSVC\srelated\sto\sC99.
+D 2020-12-09T23:35:51.896
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -495,7 +495,7 @@ F src/delete.c 927cf8f900583e79aca8f1a321979e0a8f053babd9a690b44b38f79de2cc09fe
 F src/expr.c 0d196ed5a2ebf96be7e8df88add4fabfad0dce16c0fed81a4b8f6a26e259797f
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 83372403298e6a7dd989a47aaacdbaa5b4307b5199dbd56e07d4896066b3de72
-F src/func.c c65447d69bbf743328e7e4e836475ac5fb4ab80213fe5b189b8b0109e942e7c1
+F src/func.c 04b33016df7f4dcda295f71c6c776e2f49bfe0d50b5c5118240dfcd307d4755d
 F src/global.c ed55af196a9b66e198aaeda3f5454c3aa7d7d050c6c938181fd044b70d180a81
 F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19
 F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38
@@ -545,7 +545,7 @@ F src/shell.c.in e9f674ee4ec6c345679e8a5b16c869c6c59eb1540dd98ac69e4736ecddce009
 F src/sqlite.h.in 0e2b4259e49a0eda54d9118eb18a04fcd60e0727a2fd2c81aade0bf57520e706
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e
-F src/sqliteInt.h 6ab40b33a1f5edbb7d71c78e82e0f9c5291dcff4704df8e4f0ab0d9c1a0c06af
+F src/sqliteInt.h 6b9e04aff5ae385e8d0957bf64cb3c1c42f4bf5115788c7be76e85ca9875740b
 F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
 F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@ -1888,7 +1888,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 4b286129138d44e6f8e9b3450289941e01d20fdfb9d0b5d846031425e8ca6b49
-R 37fc0afc3fe30eb3e2571a975a076869
-U dan
-Z 8a4734d621babbb70002204527e1408c
+P 818c647cec7063b33b6c5de3e23599a1d61439fa6e9bf6c974b2522a5a9e1b44
+R f5a4c0e24239e1b152c6955913834244
+U mistachkin
+Z ac2c81554df4b37487abc146a7fda901
index 1e6307466a04a5fd81aec134b4658de7b968b835..402122935f74f08c6d420c23fd51c13887adae6c 100644 (file)
@@ -1 +1 @@
-818c647cec7063b33b6c5de3e23599a1d61439fa6e9bf6c974b2522a5a9e1b44
\ No newline at end of file
+c0de6c1fb2c486be1da01e5e4ca8c5634ba37822e418d57f272e018c3e3fc0a2
\ No newline at end of file
index 169f231430eb735a632cf31b41a52fe915b9f3de..a29088a68d59387e25a741220d1a649b918e7f34 100644 (file)
@@ -2021,10 +2021,10 @@ static void math1Func(
   int argc,
   sqlite3_value **argv
 ){
-  assert( argc==1 );
   int type0;
   double v0, ans;
   double (*x)(double);
+  assert( argc==1 );
   type0 = sqlite3_value_numeric_type(argv[0]);
   if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
   v0 = sqlite3_value_double(argv[0]);
@@ -2043,10 +2043,10 @@ static void math2Func(
   int argc,
   sqlite3_value **argv
 ){
-  assert( argc==2 );
   int type0, type1;
   double v0, v1, ans;
   double (*x)(double,double);
+  assert( argc==2 );
   type0 = sqlite3_value_numeric_type(argv[0]);
   if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
   type1 = sqlite3_value_numeric_type(argv[1]);
@@ -2082,9 +2082,9 @@ static void signFunc(
   int argc,
   sqlite3_value **argv
 ){
-  assert( argc==1 );
   int type0;
   double x;
+  assert( argc==1 );
   type0 = sqlite3_value_numeric_type(argv[0]);
   if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
   x = sqlite3_value_double(argv[0]);
@@ -2213,7 +2213,9 @@ void sqlite3RegisterBuiltinFunctions(void){
     MFUNCTION(ceil,              1, ceil,      ceilingFunc ),
     MFUNCTION(ceiling,           1, ceil,      ceilingFunc ),
     MFUNCTION(floor,             1, floor,     ceilingFunc ),
+#if SQLITE_HAVE_C99_MATH_FUNCS
     MFUNCTION(trunc,             1, trunc,     ceilingFunc ),
+#endif
     FUNCTION(ln,                 1, 0, 0,      logFunc     ),
     FUNCTION(log,                1, 1, 0,      logFunc     ),
     FUNCTION(log10,              1, 1, 0,      logFunc     ),
@@ -2233,9 +2235,11 @@ void sqlite3RegisterBuiltinFunctions(void){
     MFUNCTION(cosh,              1, cosh,      math1Func   ),
     MFUNCTION(sinh,              1, sinh,      math1Func   ),
     MFUNCTION(tanh,              1, tanh,      math1Func   ),
+#if SQLITE_HAVE_C99_MATH_FUNCS
     MFUNCTION(acosh,             1, acosh,     math1Func   ),
     MFUNCTION(asinh,             1, asinh,     math1Func   ),
     MFUNCTION(atanh,             1, atanh,     math1Func   ),
+#endif
     MFUNCTION(sqrt,              1, sqrt,      math1Func   ),
     MFUNCTION(radians,           1, degToRad,  math1Func   ),
     MFUNCTION(degrees,           1, radToDeg,  math1Func   ),
index 438f79c0925649c9e71d3e9e9c0143beb5ec7d23..dd1d7e03ac99dec4ec611549c67d76df63c75401 100644 (file)
 # define MSVC_VERSION 0
 #endif
 
+/*
+** Some C99 functions in "math.h" are only present for MSVC when its version
+** is associated with Visual Studio 2013 or higher.
+*/
+#ifndef SQLITE_HAVE_C99_MATH_FUNCS
+# if MSVC_VERSION==0 || MSVC_VERSION>=1800
+#  define SQLITE_HAVE_C99_MATH_FUNCS (1)
+# else
+#  define SQLITE_HAVE_C99_MATH_FUNCS (0)
+# endif
+#endif
+
 /* Needed for various definitions... */
 #if defined(__GNUC__) && !defined(_GNU_SOURCE)
 # define _GNU_SOURCE