From 2e8097aae2ccd8aecc9462a9243acf14844470b0 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Wed, 24 Sep 2008 13:14:32 +0000 Subject: [PATCH] Suppress some compiler warnings. --- convert.c | 2 +- descriptor.h | 13 ++++++++++++- options.c | 30 ++++++++++++++++-------------- parse.c | 18 +++++++++--------- pgapi30.c | 2 +- socket.c | 2 +- 6 files changed, 40 insertions(+), 27 deletions(-) diff --git a/convert.c b/convert.c index aa98eb0..25234fc 100644 --- a/convert.c +++ b/convert.c @@ -2530,7 +2530,7 @@ inolog("type=%d concur=%d\n", stmt->options.cursor_type, stmt->options.scroll_co char curname[32]; sprintf(curname, "SQL_CUR%p", stmt); - STR_TO_NAME(stmt->cursor_name, curname); + STRX_TO_NAME(stmt->cursor_name, curname); } if (stmt->stmt_with_params) { diff --git a/descriptor.h b/descriptor.h index 6f4cf00..d9c72b8 100644 --- a/descriptor.h +++ b/descriptor.h @@ -5,7 +5,7 @@ * * Comments: See "notice.txt" for copyright and license information. * - * $Id: descriptor.h,v 1.20 2007/08/31 23:40:10 hinoue Exp $ + * $Id: descriptor.h,v 1.21 2008/09/24 13:14:32 hinoue Exp $ * */ @@ -35,6 +35,17 @@ do { \ free((the_name).name); \ (the_name).name = (str ? strdup((str)) : NULL); \ } while (0) +/* + * a modified version of macro STR_TO_NAME to suppress compiler warnings + * when the compiler may confirm str != NULL. + */ +#define STRX_TO_NAME(the_name, str) \ +do { \ + if ((the_name).name) \ + free((the_name).name); \ + (the_name).name = strdup((str)); \ +} while (0) + #define STRN_TO_NAME(the_name, str, n) \ do { \ if ((the_name).name) \ diff --git a/options.c b/options.c index b64bc3f..e0267af 100644 --- a/options.c +++ b/options.c @@ -58,7 +58,7 @@ set_statement_option(ConnectionClass *conn, * positioned update isn't supported so cursor concurrency is * read-only */ - mylog("SetStmtOption(): SQL_CONCURRENCY = %d ", vParam); + mylog("SetStmtOption(): SQL_CONCURRENCY = " FORMAT_LEN " ", vParam); setval = SQL_CONCUR_READ_ONLY; if (SQL_CONCUR_READ_ONLY == vParam) ; @@ -80,7 +80,7 @@ set_statement_option(ConnectionClass *conn, } if (setval != vParam) changed = TRUE; - mylog("-> %d\n", setval); + mylog("-> " FORMAT_LEN "\n", setval); break; case SQL_CURSOR_TYPE: @@ -89,7 +89,7 @@ set_statement_option(ConnectionClass *conn, * if declare/fetch, then type can only be forward. otherwise, * it can only be forward or static. */ - mylog("SetStmtOption(): SQL_CURSOR_TYPE = %d ", vParam); + mylog("SetStmtOption(): SQL_CURSOR_TYPE = " FORMAT_LEN " ", vParam); setval = SQL_CURSOR_FORWARD_ONLY; if (ci->drivers.lie) setval = vParam; @@ -117,11 +117,11 @@ set_statement_option(ConnectionClass *conn, } if (setval != vParam) changed = TRUE; - mylog("-> %d\n", setval); + mylog("-> " FORMAT_LEN "\n", setval); break; case SQL_KEYSET_SIZE: /* ignored, but saved and returned */ - mylog("SetStmtOption(): SQL_KEYSET_SIZE, vParam = %d\n", vParam); + mylog("SetStmtOption(): SQL_KEYSET_SIZE, vParam = " FORMAT_LEN "\n", vParam); if (conn) conn->stmtOptions.keyset_size = vParam; @@ -137,7 +137,7 @@ set_statement_option(ConnectionClass *conn, break; case SQL_MAX_LENGTH: /* ignored, but saved */ - mylog("SetStmtOption(): SQL_MAX_LENGTH, vParam = %d\n", vParam); + mylog("SetStmtOption(): SQL_MAX_LENGTH, vParam = " FORMAT_LEN "\n", vParam); if (conn) conn->stmtOptions.maxLength = vParam; if (stmt) @@ -151,7 +151,7 @@ set_statement_option(ConnectionClass *conn, break; case SQL_MAX_ROWS: /* ignored, but saved */ - mylog("SetStmtOption(): SQL_MAX_ROWS, vParam = %d\n", vParam); + mylog("SetStmtOption(): SQL_MAX_ROWS, vParam = " FORMAT_LEN "\n", vParam); if (conn) conn->stmtOptions.maxRows = vParam; if (stmt) @@ -165,16 +165,16 @@ set_statement_option(ConnectionClass *conn, break; case SQL_NOSCAN: /* ignored */ - mylog("SetStmtOption: SQL_NOSCAN, vParam = %d\n", vParam); + mylog("SetStmtOption: SQL_NOSCAN, vParam = " FORMAT_LEN "\n", vParam); break; case SQL_QUERY_TIMEOUT: /* ignored */ - mylog("SetStmtOption: SQL_QUERY_TIMEOUT, vParam = %d\n", vParam); + mylog("SetStmtOption: SQL_QUERY_TIMEOUT, vParam = " FORMAT_LEN "\n", vParam); /* "0" returned in SQLGetStmtOption */ break; case SQL_RETRIEVE_DATA: - mylog("SetStmtOption(): SQL_RETRIEVE_DATA, vParam = %d\n", vParam); + mylog("SetStmtOption(): SQL_RETRIEVE_DATA, vParam = " FORMAT_LEN "\n", vParam); if (conn) conn->stmtOptions.retrieve_data = (SQLUINTEGER) vParam; if (stmt) @@ -182,7 +182,7 @@ set_statement_option(ConnectionClass *conn, break; case SQL_ROWSET_SIZE: - mylog("SetStmtOption(): SQL_ROWSET_SIZE, vParam = %d\n", vParam); + mylog("SetStmtOption(): SQL_ROWSET_SIZE, vParam = " FORMAT_LEN "\n", vParam); if (vParam < 1) { @@ -298,7 +298,7 @@ PGAPI_SetConnectOption( RETCODE retval; BOOL autocomm_on; - mylog("%s: entering fOption = %d vParam = %d\n", func, fOption, vParam); + mylog("%s: entering fOption = %d vParam = " FORMAT_LEN "\n", func, fOption, vParam); if (!conn) { CC_log_error(func, "", NULL); @@ -375,7 +375,7 @@ PGAPI_SetConnectOption( else if (!autocomm_on && SQL_AUTOCOMMIT_OFF == ci->autocommit_public) break; ci->autocommit_public = (autocomm_on ? SQL_AUTOCOMMIT_ON : SQL_AUTOCOMMIT_OFF); - mylog("%s: AUTOCOMMIT: transact_status=%d, vparam=%d\n", func, conn->transact_status, vParam); + mylog("%s: AUTOCOMMIT: transact_status=%d, vparam=" FORMAT_LEN "\n", func, conn->transact_status, vParam); #ifdef _HANDLE_ENLIST_IN_DTC_ if (NULL != conn->asdum) @@ -485,6 +485,7 @@ PGAPI_SetConnectOption( CC_set_error(conn, CONN_UNSUPPORTED_OPTION, "Unknown connect option (Set)", func); sprintf(option, "fOption=%d, vParam=" FORMAT_LEN, fOption, vParam); +#ifdef WIN32 if (fOption == 30002 && vParam) { int cmp; @@ -506,6 +507,7 @@ PGAPI_SetConnectOption( return SQL_SUCCESS; } } +#endif /* WIN32 */ CC_log_error(func, option, conn); return SQL_ERROR; } @@ -569,7 +571,7 @@ PGAPI_GetConnectOption( break; case SQL_QUIET_MODE: /* NOT SUPPORTED */ - *((SQLULEN *) pvParam) = (SQLULEN) NULL; + *((SQLULEN *) pvParam) = 0; break; case SQL_TXN_ISOLATION: diff --git a/parse.c b/parse.c index 77dad11..f6be8ca 100644 --- a/parse.c +++ b/parse.c @@ -390,7 +390,7 @@ static BOOL CheckHasOids(StatementClass * stmt) foundKey = TRUE; STR_TO_NAME(ti->bestitem, OID_NAME); sprintf(query, "\"%s\" = %%u", OID_NAME); - STR_TO_NAME(ti->bestqual, query); + STRX_TO_NAME(ti->bestqual, query); } TI_set_hasoids_checked(ti); ti->table_oid = (OID) strtoul(QR_get_value_backend_text(res, 0, 1), NULL, 10); @@ -410,7 +410,7 @@ static BOOL CheckHasOids(StatementClass * stmt) strcat(query, "d"); else strcat(query, "u"); - STR_TO_NAME(ti->bestqual, query); + STRX_TO_NAME(ti->bestqual, query); } else { @@ -1310,7 +1310,7 @@ mylog("blevel=%d btoken=%s in_dot=%d in_field=%d tbname=%s\n", blevel, btoken, i column_has_alias = TRUE; if (NULL != wfi) - STR_TO_NAME(wfi->column_alias, token); + STRX_TO_NAME(wfi->column_alias, token); news = insert_as_to_the_statement(stmt->statement, &pptr, &ptr); if (news != stmt->statement) { @@ -1435,7 +1435,7 @@ mylog("blevel=%d btoken=%s in_dot=%d in_field=%d tbname=%s\n", blevel, btoken, i } else if (NULL != wfi) { - STR_TO_NAME(wfi->column_name, token); + STRX_TO_NAME(wfi->column_name, token); NULL_THE_NAME(wfi->before_dot); } if (NULL != wfi) @@ -1465,7 +1465,7 @@ mylog("blevel=%d btoken=%s in_dot=%d in_field=%d tbname=%s\n", blevel, btoken, i MOVE_NAME(wfi->schema_name, wfi->before_dot); } MOVE_NAME(wfi->before_dot, wfi->column_name); - STR_TO_NAME(wfi->column_name, token); + STRX_TO_NAME(wfi->column_name, token); } if (delim == ',') @@ -1482,7 +1482,7 @@ mylog("blevel=%d btoken=%s in_dot=%d in_field=%d tbname=%s\n", blevel, btoken, i column_has_alias = TRUE; if (NULL != wfi) { - STR_TO_NAME(wfi->column_alias, token); + STRX_TO_NAME(wfi->column_alias, token); mylog("alias for field '%s' is '%s'\n", PRINT_NAME(wfi->column_name), PRINT_NAME(wfi->column_alias)); } in_as = FALSE; @@ -1607,7 +1607,7 @@ mylog("blevel=%d btoken=%s in_dot=%d in_field=%d tbname=%s\n", blevel, btoken, i { if (is_table_name) { - STR_TO_NAME(wti->table_name, token); + STRX_TO_NAME(wti->table_name, token); lower_the_name(GET_NAME(wti->table_name), conn, dquote); mylog("got table = '%s'\n", PRINT_NAME(wti->table_name)); } @@ -1684,7 +1684,7 @@ mylog("blevel=%d btoken=%s in_dot=%d in_field=%d tbname=%s\n", blevel, btoken, i if (NULL != wfi) { MOVE_NAME(wti->schema_name, wti->table_name); - STR_TO_NAME(wti->table_name, token); + STRX_TO_NAME(wti->table_name, token); lower_the_name(GET_NAME(wti->table_name), conn, dquote); } in_dot = FALSE; @@ -1707,7 +1707,7 @@ mylog("blevel=%d btoken=%s in_dot=%d in_field=%d tbname=%s\n", blevel, btoken, i } if (NULL != wti) { - STR_TO_NAME(wti->table_alias, token); + STRX_TO_NAME(wti->table_alias, token); mylog("alias for table '%s' is '%s'\n", PRINT_NAME(wti->table_name), PRINT_NAME(wti->table_alias)); } in_table = FALSE; diff --git a/pgapi30.c b/pgapi30.c index 57068b4..0305e5b 100644 --- a/pgapi30.c +++ b/pgapi30.c @@ -1867,7 +1867,7 @@ inolog("set ard=%p\n", stmt->ard); SC_get_IRDF(stmt)->rowsFetched = (SQLULEN *) Value; break; case SQL_ATTR_ROW_ARRAY_SIZE: /* 27 */ - SC_get_ARDF(stmt)->size_of_rowset = (SQLULEN) Value; + SC_get_ARDF(stmt)->size_of_rowset = CAST_UPTR(SQLULEN, Value); break; default: return PGAPI_SetStmtOption(StatementHandle, (SQLUSMALLINT) Attribute, (SQLULEN) Value); diff --git a/socket.c b/socket.c index 867fcb6..a42af03 100644 --- a/socket.c +++ b/socket.c @@ -209,7 +209,7 @@ static BOOL format_sockerr(char *errmsg, size_t buflen, int errnum, const char * #else if (0 == strerror_r(errnum, errmsg, buflen)) ret = TRUE; -#endif /* STRERROR_R_INT */ +#endif /* STRERROR_R_CHAR_P */ #else strncpy(errmsg, strerror(errnum), buflen); ret = TRUE; -- 2.39.5