diff --git a/ChangeLog.txt b/ChangeLog.txt index c2d788b97c..2ff9964e6b 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,43 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2017-05-09 09:12 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * contrib/hbct/charswap.c + * contrib/hbct/token1.c + * contrib/hbnetio/netiosrv.c + * contrib/hbssl/ssl_sock.c + * contrib/rddads/ads1.c + * include/hbexprb.c + * src/common/hbprintf.c + * src/compiler/cmdcheck.c + * src/compiler/complex.c + * src/compiler/gencc.c + * src/compiler/hbmain.c + * src/compiler/hbopt.c + * src/pp/ppcore.c + * src/rdd/dbf1.c + * src/rdd/dbfcdx/dbfcdx1.c + * src/rdd/dbffpt/dbffpt1.c + * src/rdd/dbfntx/dbfntx1.c + * src/rdd/hsx/hsx.c + * src/rdd/workarea.c + * src/rtl/dates.c + * src/rtl/gtclip.c + * src/rtl/gtwin/gtwin.c + * src/rtl/gtwvt/gtwvt.c + * src/rtl/hbgtcore.c + * src/rtl/itemseri.c + * src/rtl/strtoexp.c + * src/vm/classes.c + * src/vm/task.c + * added and verified (following Viktor's patch) + /* fallthrough */ comment for GCC >= 7. + ; I haven't found any errors in existing code. + /cc @vszakats + + * src/rdd/dbf1.c + * minor improvement in dbf1.c + 2017-05-04 14:48 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/compiler/hbcomp.c ! restored protection against multiple free of the same expression diff --git a/contrib/hbct/charswap.c b/contrib/hbct/charswap.c index 7a5bc68134..20895824a1 100644 --- a/contrib/hbct/charswap.c +++ b/contrib/hbct/charswap.c @@ -104,7 +104,7 @@ static void do_charswap( int iSwitch ) case DO_CHARSWAP_WORDSWAP_CHARSWAP: pcRet[ sRetIndex++ ] = pcSub[ 3 ]; pcRet[ sRetIndex++ ] = pcSub[ 2 ]; - /* no 'break' here !! */ + /* fallthrough */ case DO_CHARSWAP_CHARSWAP: pcRet[ sRetIndex++ ] = pcSub[ 1 ]; pcRet[ sRetIndex++ ] = pcSub[ 0 ]; diff --git a/contrib/hbct/token1.c b/contrib/hbct/token1.c index b46e1e0878..932f7ebb34 100644 --- a/contrib/hbct/token1.c +++ b/contrib/hbct/token1.c @@ -98,7 +98,7 @@ static void do_token1( int iSwitch ) { case DO_TOKEN1_TOKEN: ct_token->iPreSeparator = ct_token->iPostSeparator = -1; - /* no "break" here !! */ + /* fallthrough */ case DO_TOKEN1_ATTOKEN: case DO_TOKEN1_NUMTOKEN: case DO_TOKEN1_TOKENLOWER: diff --git a/contrib/hbnetio/netiosrv.c b/contrib/hbnetio/netiosrv.c index d3b2e2ce44..56b94ef8c3 100644 --- a/contrib/hbnetio/netiosrv.c +++ b/contrib/hbnetio/netiosrv.c @@ -1270,6 +1270,7 @@ HB_FUNC( NETIO_SERVER ) case NETIO_UNLOCK: fNoAnswer = HB_TRUE; + /* fallthrough */ case NETIO_LOCK: case NETIO_TESTLOCK: iFileNo = HB_GET_LE_UINT16( &msgbuf[ 4 ] ); @@ -1418,6 +1419,7 @@ HB_FUNC( NETIO_SERVER ) case NETIO_PROC: fNoAnswer = HB_TRUE; + /* fallthrough */ case NETIO_PROCIS: case NETIO_PROCW: case NETIO_FUNC: diff --git a/contrib/hbssl/ssl_sock.c b/contrib/hbssl/ssl_sock.c index 15e079d4aa..de10c3fb8f 100644 --- a/contrib/hbssl/ssl_sock.c +++ b/contrib/hbssl/ssl_sock.c @@ -169,6 +169,7 @@ long hb_ssl_socketRead( PHB_SSLSTREAM pStream, HB_SOCKET sd, hb_socketSetError( HB_SOCKET_ERR_TIMEOUT ); break; } + /* fallthrough */ default: hb_socketSetError( HB_SSL_SOCK_ERROR_BASE + iError ); } @@ -248,6 +249,7 @@ long hb_ssl_socketWrite( PHB_SSLSTREAM pStream, HB_SOCKET sd, hb_socketSetError( HB_SOCKET_ERR_TIMEOUT ); break; } + /* fallthrough */ default: hb_socketSetError( HB_SSL_SOCK_ERROR_BASE + iError ); } diff --git a/contrib/rddads/ads1.c b/contrib/rddads/ads1.c index 01fdf1b6d3..c41e396e3c 100644 --- a/contrib/rddads/ads1.c +++ b/contrib/rddads/ads1.c @@ -1847,7 +1847,7 @@ static HB_ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct ) dbFieldInfo.uiFlags &= HB_FF_NULLABLE; break; } - /* no break */ + /* fallthrough */ case '@': #if ADS_LIB_VERSION >= 900 @@ -2089,7 +2089,7 @@ static HB_ERRCODE adsFieldInfo( ADSAREAP pArea, HB_USHORT uiIndex, HB_USHORT uiT hb_itemPutC( pItem, "CICHARACTER" ); break; } - /* no break */ + /* fallthrough */ } #endif default: diff --git a/include/hbexprb.c b/include/hbexprb.c index 3d1174f583..48508d1297 100644 --- a/include/hbexprb.c +++ b/include/hbexprb.c @@ -1547,7 +1547,7 @@ static HB_EXPR_FUNC( hb_compExprUseArrayAt ) */ HB_EXPR_USE( pSelf->value.asList.pExprList, HB_EA_PUSH_POP ); HB_EXPR_USE( pSelf->value.asList.pIndex, HB_EA_PUSH_POP ); - /* no break */ + /* fallthrough */ case HB_EA_STATEMENT: hb_compWarnMeaningless( HB_COMP_PARAM, pSelf ); break; diff --git a/src/common/hbprintf.c b/src/common/hbprintf.c index da1cc5f903..f945b02757 100644 --- a/src/common/hbprintf.c +++ b/src/common/hbprintf.c @@ -949,7 +949,7 @@ int hb_printf_params( const char * format ) format += 2; c = *format++; } - /* no break; */ + /* fallthrough */ default: break; } @@ -1195,7 +1195,7 @@ int hb_vsnprintf( char * buffer, size_t bufsize, const char * format, va_list ap format += 2; c = *format++; } - /* no break; */ + /* fallthrough */ default: length = _L_UNDEF_; break; @@ -1215,7 +1215,7 @@ int hb_vsnprintf( char * buffer, size_t bufsize, const char * format, va_list ap * valid parameters order */ c = ( c == 'a' || c == 'e' || c == 'g' ) ? 'f' : 'F'; - /* no break; */ + /* fallthrough */ case 'f': /* double decimal notation */ case 'F': /* double decimal notation */ if( length == _L_LONGDOUBLE_ ) diff --git a/src/compiler/cmdcheck.c b/src/compiler/cmdcheck.c index de7a415d2e..fec125ebb0 100644 --- a/src/compiler/cmdcheck.c +++ b/src/compiler/cmdcheck.c @@ -274,7 +274,7 @@ static const char * hb_compChkParseSwitch( HB_COMP_DECL, const char * szSwitch, break; case '0': ++szSwPtr; - /* no break; */ + /* fallthrough */ default: szSwPtr += 2; HB_COMP_PARAM->iExitLevel = HB_EXITLEVEL_DEFAULT; @@ -381,7 +381,7 @@ static const char * hb_compChkParseSwitch( HB_COMP_DECL, const char * szSwitch, break; case '0': ++szSwPtr; - /* no break; */ + /* fallthrough */ default: HB_COMP_PARAM->iGenCOutput = HB_COMPGENC_COMPACT; break; @@ -423,7 +423,7 @@ static const char * hb_compChkParseSwitch( HB_COMP_DECL, const char * szSwitch, break; case '0': ++szSwPtr; - /* no break; */ + /* fallthrough */ default: HB_COMP_PARAM->iErrorFmt = HB_ERRORFMT_CLIPPER; break; @@ -636,7 +636,7 @@ static const char * hb_compChkParseSwitch( HB_COMP_DECL, const char * szSwitch, case '0': case '1': ++szSwPtr; - /* no break; */ + /* fallthrough */ default: HB_COMP_PARAM->iStartProc = 1; break; @@ -686,11 +686,11 @@ static const char * hb_compChkParseSwitch( HB_COMP_DECL, const char * szSwitch, break; case '2': HB_COMP_PARAM->fFullQuiet = HB_TRUE; - /* no break */ + /* fallthrough */ case '0': HB_COMP_PARAM->fLogo = HB_FALSE; ++szSwPtr; - /* no break */ + /* fallthrough */ default: HB_COMP_PARAM->fQuiet = HB_TRUE; } diff --git a/src/compiler/complex.c b/src/compiler/complex.c index 0690e65c01..b86e44141a 100644 --- a/src/compiler/complex.c +++ b/src/compiler/complex.c @@ -756,7 +756,7 @@ int hb_comp_yylex( YYSTYPE * yylval_ptr, HB_COMP_DECL ) pLex->iState = OPERATOR; return HASHOP; } - /* no break */ + /* fallthrough */ case HB_PP_TOKEN_PLUS: case HB_PP_TOKEN_MINUS: case HB_PP_TOKEN_MULT: diff --git a/src/compiler/gencc.c b/src/compiler/gencc.c index 1504fdc6d1..a06ce35df9 100644 --- a/src/compiler/gencc.c +++ b/src/compiler/gencc.c @@ -279,7 +279,7 @@ static int hb_gencc_checkNumAhead( HB_LONG lValue, PHB_HFUNC pFunc, HB_SIZE nPCo break; #endif lValue = -lValue; - /* no break */ + /* fallthrough */ case HB_P_PLUS: fprintf( cargo->yyc, "\tif( hb_xvmAddInt( %ldL ) ) break;\n", lValue ); diff --git a/src/compiler/hbmain.c b/src/compiler/hbmain.c index fd80489259..c0ac9cfa3d 100644 --- a/src/compiler/hbmain.c +++ b/src/compiler/hbmain.c @@ -587,8 +587,10 @@ void hb_compVariableAdd( HB_COMP_DECL, const char * szVarName, PHB_VARTYPE pVarT } break; } + case HB_VSCOMP_TH_STATIC: pVar->uiFlags = HB_VSCOMP_THREAD; + /* fallthrough */ case HB_VSCOMP_STATIC: ++HB_COMP_PARAM->iStaticCnt; hb_compVarListAdd( &pFunc->pStatics, pVar ); diff --git a/src/compiler/hbopt.c b/src/compiler/hbopt.c index 12c7f28527..e6b50a91bf 100644 --- a/src/compiler/hbopt.c +++ b/src/compiler/hbopt.c @@ -449,7 +449,7 @@ static HB_OPT_FUNC( hb_p_not ) } } } - /* no break; */ + /* fallthrough */ #endif default: opcode = HB_P_LAST_PCODE; diff --git a/src/pp/ppcore.c b/src/pp/ppcore.c index cdf5e01e0d..4085a8b98b 100644 --- a/src/pp/ppcore.c +++ b/src/pp/ppcore.c @@ -4722,7 +4722,7 @@ static PHB_PP_TOKEN hb_pp_calcPrecedence( PHB_PP_TOKEN pToken, pNext = pNext->pNext; break; } - /* no break */ + /* fallthrough */ /* relational */ case HB_PP_TOKEN_EQUAL: case HB_PP_TOKEN_HASH: @@ -6016,11 +6016,13 @@ void hb_pp_setStream( PHB_PP_STATE pState, int iMode ) case HB_PP_STREAM_INLINE_C: pState->iDumpLine = pState->pFile ? pState->pFile->iCurrentLine : 0; + /* fallthrough */ case HB_PP_STREAM_CLIPPER: case HB_PP_STREAM_PRG: case HB_PP_STREAM_C: if( ! pState->pStreamBuffer ) pState->pStreamBuffer = hb_membufNew(); + /* fallthrough */ case HB_PP_STREAM_OFF: case HB_PP_STREAM_COMMENT: pState->iStreamDump = iMode; diff --git a/src/rdd/dbf1.c b/src/rdd/dbf1.c index 297e4c57c5..3522dd05f4 100644 --- a/src/rdd/dbf1.c +++ b/src/rdd/dbf1.c @@ -1879,7 +1879,7 @@ static HB_ERRCODE hb_dbfAddField( DBFAREAP pArea, LPDBFIELDINFO pFieldInfo ) case HB_FT_BLOB: case HB_FT_OLE: pFieldInfo->uiFlags |= HB_FF_BINARY; - /* no break */ + /* fallthrough */ case HB_FT_MEMO: if( pArea->bMemoType == DB_MEMO_SMT ) pFieldInfo->uiLen = 10; @@ -2222,7 +2222,7 @@ static HB_ERRCODE hb_dbfGetValue( DBFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI hb_itemPutTDT( pItem, 0, HB_GET_LE_INT32( pArea->pRecord + pArea->pFieldOffset[ uiIndex ] ) ); break; } - /* no break */ + /* fallthrough */ case HB_FT_MODTIME: case HB_FT_TIMESTAMP: @@ -4348,10 +4348,17 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) case 'L': case 'D': if( pField->bFieldFlags & ~HB_FF_NULLABLE ) + { uiFlags = 0; + break; + } + /* fallthrough */ case 'N': if( pField->bFieldFlags & ~( HB_FF_NULLABLE | HB_FF_AUTOINC ) ) + { uiFlags = 0; + break; + } else if( ( pField->bFieldFlags & HB_FF_AUTOINC ) != 0 ) { if( HB_GET_LE_UINT32( pField->bReserved1 ) != 0 || @@ -4362,6 +4369,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) uiFlags = 0; break; } + /* fallthrough */ case 'C': case 'M': case 'V': @@ -4612,6 +4620,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) if( pArea->uiRecordLen >= dbFieldInfo.uiLen ) continue; } + /* fallthrough */ default: errCode = HB_FAILURE; @@ -4973,6 +4982,7 @@ static HB_ERRCODE hb_dbfSortInit( LPDBSORTREC pSortRec, LPDBSORTINFO pSortInfo ) } if( pField->uiLen == 3 ) break; + /* fallthrough */ case HB_FT_MEMO: case HB_FT_IMAGE: case HB_FT_BLOB: @@ -4993,6 +5003,7 @@ static HB_ERRCODE hb_dbfSortInit( LPDBSORTREC pSortRec, LPDBSORTINFO pSortInfo ) pSortInfo->lpdbsItem[ uiCount ].uiFlags |= SF_LONG; break; } + /* fallthrough */ case HB_FT_FLOAT: case HB_FT_DOUBLE: case HB_FT_CURDOUBLE: @@ -6144,6 +6155,7 @@ static HB_ERRCODE hb_dbfReadDBHeader( DBFAREAP pArea ) { case 0x31: pArea->fAutoInc = HB_TRUE; + /* fallthrough */ case 0x30: case 0x32: if( pArea->dbfHeader.bHasTags & 0x02 ) diff --git a/src/rdd/dbfcdx/dbfcdx1.c b/src/rdd/dbfcdx/dbfcdx1.c index 4e7232470a..d680d902bd 100644 --- a/src/rdd/dbfcdx/dbfcdx1.c +++ b/src/rdd/dbfcdx/dbfcdx1.c @@ -4225,6 +4225,7 @@ static void hb_cdxTagKeyRead( LPCDXTAG pTag, HB_BYTE bTypRead ) case PREV_RECORD: bTypRead = PRVU_RECORD; + /* fallthrough */ case BTTM_RECORD: fAfter = HB_TRUE; break; diff --git a/src/rdd/dbffpt/dbffpt1.c b/src/rdd/dbffpt/dbffpt1.c index 28018bdf45..3d1dc0f869 100644 --- a/src/rdd/dbffpt/dbffpt1.c +++ b/src/rdd/dbffpt/dbffpt1.c @@ -1183,14 +1183,14 @@ static HB_ULONG hb_fptCountSMTItemLength( FPTAREAP pArea, PHB_ITEM pItem, case HB_IT_INTEGER: case HB_IT_LONG: { - HB_MAXINT iVal; - iVal = hb_itemGetNInt( pItem ); + HB_MAXINT iVal = hb_itemGetNInt( pItem ); if( HB_LIM_INT32( iVal ) ) { ulSize = 5; break; } } + /* fallthrough */ case HB_IT_DOUBLE: ulSize = 11; break; @@ -1331,6 +1331,7 @@ static void hb_fptStoreSMTItem( FPTAREAP pArea, PHB_ITEM pItem, HB_BYTE ** bBufP *bBufPtr += 4; break; } + /* fallthrough */ case HB_IT_DOUBLE: dVal = hb_itemGetND( pItem ); hb_itemGetNLen( pItem, &iWidth, &iDec ); diff --git a/src/rdd/dbfntx/dbfntx1.c b/src/rdd/dbfntx/dbfntx1.c index 8e53ba3df5..afb96cdd0e 100644 --- a/src/rdd/dbfntx/dbfntx1.c +++ b/src/rdd/dbfntx/dbfntx1.c @@ -476,6 +476,7 @@ static LPKEYINFO hb_ntxKeyPutItem( LPKEYINFO pKey, PHB_ITEM pItem, HB_ULONG ulRe hb_itemGetTS( pItem, pKey->key ); break; } + /* fallthrough */ case 'D': if( pTag->KeyLength < 8 ) { @@ -5508,6 +5509,7 @@ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) hb_ntxSortKeyAdd( pSort, pArea->dbfarea.ulRecNo, szBuffer, 17 ); break; } + /* fallthrough */ case HB_IT_DATE: hb_itemGetDS( pItem, szBuffer ); hb_ntxSortKeyAdd( pSort, pArea->dbfarea.ulRecNo, szBuffer, 8 ); diff --git a/src/rdd/hsx/hsx.c b/src/rdd/hsx/hsx.c index d8c4019c3f..a0c1085ef8 100644 --- a/src/rdd/hsx/hsx.c +++ b/src/rdd/hsx/hsx.c @@ -969,10 +969,12 @@ static int hb_hsxLock( int iHandle, int iAction, HB_ULONG ulRecord ) iRetVal = hb_hsxFlush( iHandle ); if( iAction == HSX_APPENDLOCK ) pHSX->fWrLocked = HB_FALSE; + /* fallthrough */ case HSX_HDRWRITEUNLOCK: iRet = hb_hsxHdrFlush( iHandle ); if( iRetVal == HSX_SUCCESS ) iRetVal = iRet; + /* fallthrough */ case HSX_HDRREADUNLOCK: if( ! hb_fileLock( pHSX->pFile, HSX_HDRLOCKPOS, HSX_HDRLOCKSIZE, FL_UNLOCK ) ) diff --git a/src/rdd/workarea.c b/src/rdd/workarea.c index 329e69cc8f..56fd2682df 100644 --- a/src/rdd/workarea.c +++ b/src/rdd/workarea.c @@ -1939,7 +1939,7 @@ static HB_ERRCODE hb_waRddInfo( LPRDDNODE pRDD, HB_USHORT uiIndex, HB_ULONG ulCo hb_itemPutCLPtr( pItem, szResult, strlen( szResult ) ); break; } - /* no break - return HB_FAILURE */ + /* fallthrough */ /*return HB_FAILURE */ } case RDDI_TABLEEXT: case RDDI_ORDBAGEXT: @@ -1950,7 +1950,7 @@ static HB_ERRCODE hb_waRddInfo( LPRDDNODE pRDD, HB_USHORT uiIndex, HB_ULONG ulCo case RDDI_TRIGGER: case RDDI_PENDINGTRIGGER: hb_itemPutC( pItem, NULL ); - /* no break - return HB_FAILURE */ + /* fallthrough */ /*return HB_FAILURE */ default: return HB_FAILURE; diff --git a/src/rtl/dates.c b/src/rtl/dates.c index 532f492756..1d29c5cfa5 100644 --- a/src/rtl/dates.c +++ b/src/rtl/dates.c @@ -110,6 +110,7 @@ char * hb_dateFormat( const char * szDate, char * szFormattedDate, const char * szFormattedDate[ format_count++ ] = szDate[ 6 ]; digit_count--; } + /* fallthrough */ case 3: if( ! used_d && format_count < size ) { @@ -117,12 +118,14 @@ char * hb_dateFormat( const char * szDate, char * szFormattedDate, const char * szFormattedDate[ format_count++ ] = szDate[ 6 ]; digit_count--; } + /* fallthrough */ case 2: if( ! used_d && format_count < size ) { szFormattedDate[ format_count++ ] = szDate[ 6 ]; digit_count--; } + /* fallthrough */ default: if( ! used_d && format_count < size ) { @@ -145,6 +148,7 @@ char * hb_dateFormat( const char * szDate, char * szFormattedDate, const char * szFormattedDate[ format_count++ ] = szDate[ 4 ]; digit_count--; } + /* fallthrough */ case 3: if( ! used_m && format_count < size ) { @@ -152,12 +156,14 @@ char * hb_dateFormat( const char * szDate, char * szFormattedDate, const char * szFormattedDate[ format_count++ ] = szDate[ 4 ]; digit_count--; } + /* fallthrough */ case 2: if( ! used_m && format_count < size ) { szFormattedDate[ format_count++ ] = szDate[ 4 ]; digit_count--; } + /* fallthrough */ default: if( ! used_m && format_count < size ) { @@ -179,21 +185,21 @@ char * hb_dateFormat( const char * szDate, char * szFormattedDate, const char * szFormattedDate[ format_count++ ] = szDate[ 0 ]; digit_count--; } - + /* fallthrough */ case 3: if( ! used_y && format_count < size ) { szFormattedDate[ format_count++ ] = szDate[ 1 ]; digit_count--; } - + /* fallthrough */ case 2: if( ! used_y && format_count < size ) { szFormattedDate[ format_count++ ] = szDate[ 2 ]; digit_count--; } - + /* fallthrough */ default: if( ! used_y && format_count < size ) { @@ -460,6 +466,7 @@ char * hb_timeFormat( char * szBuffer, const char * szTimeFormat, long lMilliSec } iPM = -1; } + /* fallthrough */ default: digits = value = 0; } @@ -557,6 +564,7 @@ long hb_timeUnformat( const char * szTime, const char * szTimeFormat ) else if( szTime[ count ] == 'A' || szTime[ count ] == 'a' ) iPM = 0; } + /* fallthrough */ default: pValue = NULL; } diff --git a/src/rtl/gtclip.c b/src/rtl/gtclip.c index 6ca4927e58..bd40c9f6a5 100644 --- a/src/rtl/gtclip.c +++ b/src/rtl/gtclip.c @@ -223,6 +223,7 @@ HB_BOOL hb_gt_winapi_getClipboard( HB_UINT uFormat, PHB_ITEM pItem ) case CF_OEMTEXT: case CF_TEXT: nSize = hb_strnlen( ( const char * ) lpMem, nSize ); + /* fallthrough */ default: if( nSize ) hb_itemPutStrLen( pItem, uFormat == CF_TEXT ? diff --git a/src/rtl/gtwin/gtwin.c b/src/rtl/gtwin/gtwin.c index 351975e640..8647cc859a 100644 --- a/src/rtl/gtwin/gtwin.c +++ b/src/rtl/gtwin/gtwin.c @@ -409,6 +409,7 @@ static BOOL WINAPI hb_gt_win_CtrlHandler( DWORD dwCtrlType ) printf( " Event %lu ", ( HB_ULONG ) dwCtrlType ); #endif bHandled = FALSE; + break; } return bHandled; @@ -1044,16 +1045,16 @@ static int Handle_Alt_Key( INPUT_RECORD * pInRec, HB_BOOL * pAltIsDown, int * pA switch( ( pInRec->Event.KeyEvent.dwControlKeyState & ENHANCED_KEY ) == 0 ? pInRec->Event.KeyEvent.wVirtualScanCode : 0 ) { - case 0x49: ++iVal; /* 9 */ - case 0x48: ++iVal; /* 8 */ - case 0x47: ++iVal; /* 7 */ - case 0x4d: ++iVal; /* 6 */ - case 0x4c: ++iVal; /* 5 */ - case 0x4b: ++iVal; /* 4 */ - case 0x51: ++iVal; /* 3 */ - case 0x50: ++iVal; /* 2 */ - case 0x4f: ++iVal; /* 1 */ - case 0x52: /* 0 */ + case 0x49: ++iVal; /* fallthrough */ /* 9 */ + case 0x48: ++iVal; /* fallthrough */ /* 8 */ + case 0x47: ++iVal; /* fallthrough */ /* 7 */ + case 0x4d: ++iVal; /* fallthrough */ /* 6 */ + case 0x4c: ++iVal; /* fallthrough */ /* 5 */ + case 0x4b: ++iVal; /* fallthrough */ /* 4 */ + case 0x51: ++iVal; /* fallthrough */ /* 3 */ + case 0x50: ++iVal; /* fallthrough */ /* 2 */ + case 0x4f: ++iVal; /* fallthrough */ /* 1 */ + case 0x52: /* 0 */ if( pInRec->Event.KeyEvent.bKeyDown ) *pAltVal = *pAltVal * 10 + iVal; iVal = 0; @@ -1067,7 +1068,7 @@ static int Handle_Alt_Key( INPUT_RECORD * pInRec, HB_BOOL * pAltIsDown, int * pA #else iVal = *pAltVal & 0xFF; #endif - /* no break */ + /* fallthrough */ default: *pAltIsDown = HB_FALSE; break; @@ -1481,6 +1482,7 @@ static int hb_gt_win_ReadKey( PHB_GT pGT, int iEventMask ) if( ( dwState & ENHANCED_KEY ) == 0 ) break; iFlags |= HB_KF_CTRL; + /* fallthrough */ case VK_PAUSE: iKey = HB_KX_PAUSE; break; diff --git a/src/rtl/gtwvt/gtwvt.c b/src/rtl/gtwvt/gtwvt.c index c2a0e52501..97a1f24ea7 100644 --- a/src/rtl/gtwvt/gtwvt.c +++ b/src/rtl/gtwvt/gtwvt.c @@ -2516,6 +2516,7 @@ static HB_BOOL hb_gt_wvt_KeyEvent( PHB_GTWVT pWVT, UINT message, WPARAM wParam, if( ( lParam & WVT_EXTKEY_FLAG ) == 0 ) break; iFlags |= HB_KF_CTRL; + /* fallthrough */ case VK_PAUSE: pWVT->IgnoreWM_SYSCHAR = HB_TRUE; iKey = HB_KX_PAUSE; @@ -2607,6 +2608,7 @@ static HB_BOOL hb_gt_wvt_KeyEvent( PHB_GTWVT pWVT, UINT message, WPARAM wParam, ( iFlags & HB_KF_ALTGR ) != 0 ) /* workaround for AltGR and some German/Italian keyboard */ iFlags &= ~( HB_KF_CTRL | HB_KF_ALT | HB_KF_ALTGR ); + /* fallthrough */ case WM_SYSCHAR: iFlags = hb_gt_wvt_UpdateKeyFlags( iFlags ); if( ! pWVT->IgnoreWM_SYSCHAR ) @@ -3682,6 +3684,7 @@ static HB_BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo ) default: iVal = 0; + break; } pInfo->pResult = hb_itemPutNI( pInfo->pResult, iVal ); if( hb_itemType( pInfo->pNewVal ) & HB_IT_NUMERIC ) diff --git a/src/rtl/hbgtcore.c b/src/rtl/hbgtcore.c index ad2832b9a7..df0bd4fdef 100644 --- a/src/rtl/hbgtcore.c +++ b/src/rtl/hbgtcore.c @@ -1864,7 +1864,7 @@ static HB_BOOL hb_gt_def_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo ) HB_GTSELF_SETCURSORSTYLE( pGT, SC_NORMAL ); HB_GTSELF_DISPEND( pGT ); HB_GTSELF_FLUSH( pGT ); - /* no break; */ + /* fallthrough */ case HB_GTI_GETWIN: /* save screen buffer, cursor shape and position */ { diff --git a/src/rtl/itemseri.c b/src/rtl/itemseri.c index c334714f31..c30b742e56 100644 --- a/src/rtl/itemseri.c +++ b/src/rtl/itemseri.c @@ -1059,6 +1059,7 @@ static HB_BOOL hb_deserializeTest( const HB_UCHAR ** pBufferPtr, HB_SIZE * pnSiz case HB_SERIAL_ARRAYREF8: if( hb_itemSerialOffsetRef( pRefList, nOffset ) ) return HB_FALSE; + /* fallthrough */ case HB_SERIAL_ARRAY8: if( nSize >= 2 ) { @@ -1071,6 +1072,7 @@ static HB_BOOL hb_deserializeTest( const HB_UCHAR ** pBufferPtr, HB_SIZE * pnSiz case HB_SERIAL_ARRAYREF16: if( hb_itemSerialOffsetRef( pRefList, nOffset ) ) return HB_FALSE; + /* fallthrough */ case HB_SERIAL_ARRAY16: if( nSize >= 3 ) { @@ -1083,6 +1085,7 @@ static HB_BOOL hb_deserializeTest( const HB_UCHAR ** pBufferPtr, HB_SIZE * pnSiz case HB_SERIAL_ARRAYREF32: if( hb_itemSerialOffsetRef( pRefList, nOffset ) ) return HB_FALSE; + /* fallthrough */ case HB_SERIAL_ARRAY32: if( nSize >= 5 ) { @@ -1095,6 +1098,7 @@ static HB_BOOL hb_deserializeTest( const HB_UCHAR ** pBufferPtr, HB_SIZE * pnSiz case HB_SERIAL_HASHREF8: if( hb_itemSerialOffsetRef( pRefList, nOffset ) ) return HB_FALSE; + /* fallthrough */ case HB_SERIAL_HASH8: if( nSize >= 2 ) { @@ -1107,6 +1111,7 @@ static HB_BOOL hb_deserializeTest( const HB_UCHAR ** pBufferPtr, HB_SIZE * pnSiz case HB_SERIAL_HASHREF16: if( hb_itemSerialOffsetRef( pRefList, nOffset ) ) return HB_FALSE; + /* fallthrough */ case HB_SERIAL_HASH16: if( nSize >= 3 ) { @@ -1119,6 +1124,7 @@ static HB_BOOL hb_deserializeTest( const HB_UCHAR ** pBufferPtr, HB_SIZE * pnSiz case HB_SERIAL_HASHREF32: if( hb_itemSerialOffsetRef( pRefList, nOffset ) ) return HB_FALSE; + /* fallthrough */ case HB_SERIAL_HASH32: if( nSize >= 5 ) { @@ -1235,6 +1241,7 @@ static HB_BOOL hb_deserializeTest( const HB_UCHAR ** pBufferPtr, HB_SIZE * pnSiz case HB_SERIAL_XHB_O: hb_itemSerialTypedRef( pRefList, pBuffer[ 0 ], ( HB_SIZE ) HB_GET_BE_UINT64( &pBuffer[ 1 ] ) ); + /* fallthrough */ case HB_SERIAL_XHB_B: /* we do not support xHarbour codeblock deserialization: HB_RestoreBlock( pItem ) */ nSize = 10; @@ -1503,18 +1510,21 @@ static HB_SIZE hb_deserializeItem( PHB_ITEM pItem, case HB_SERIAL_ARRAYREF8: hb_itemSerialOffsetSet( pRefList, pItem, nOffset - 1 ); + /* fallthrough */ case HB_SERIAL_ARRAY8: nLen = pBuffer[ nOffset++ ]; nOffset = hb_deserializeArray( pItem, cdpIn, cdpOut, pBuffer, nOffset, nLen, pRefList ); break; case HB_SERIAL_ARRAYREF16: hb_itemSerialOffsetSet( pRefList, pItem, nOffset - 1 ); + /* fallthrough */ case HB_SERIAL_ARRAY16: nLen = HB_GET_LE_UINT16( &pBuffer[ nOffset ] ); nOffset = hb_deserializeArray( pItem, cdpIn, cdpOut, pBuffer, nOffset + 2, nLen, pRefList ); break; case HB_SERIAL_ARRAYREF32: hb_itemSerialOffsetSet( pRefList, pItem, nOffset - 1 ); + /* fallthrough */ case HB_SERIAL_ARRAY32: nLen = HB_GET_LE_UINT32( &pBuffer[ nOffset ] ); nOffset = hb_deserializeArray( pItem, cdpIn, cdpOut, pBuffer, nOffset + 4, nLen, pRefList ); @@ -1522,18 +1532,21 @@ static HB_SIZE hb_deserializeItem( PHB_ITEM pItem, case HB_SERIAL_HASHREF8: hb_itemSerialOffsetSet( pRefList, pItem, nOffset - 1 ); + /* fallthrough */ case HB_SERIAL_HASH8: nLen = pBuffer[ nOffset++ ]; nOffset = hb_deserializeHash( pItem, cdpIn, cdpOut, pBuffer, nOffset, nLen, pRefList ); break; case HB_SERIAL_HASHREF16: hb_itemSerialOffsetSet( pRefList, pItem, nOffset - 1 ); + /* fallthrough */ case HB_SERIAL_HASH16: nLen = HB_GET_LE_UINT16( &pBuffer[ nOffset ] ); nOffset = hb_deserializeHash( pItem, cdpIn, cdpOut, pBuffer, nOffset + 2, nLen, pRefList ); break; case HB_SERIAL_HASHREF32: hb_itemSerialOffsetSet( pRefList, pItem, nOffset - 1 ); + /* fallthrough */ case HB_SERIAL_HASH32: nLen = HB_GET_LE_UINT32( &pBuffer[ nOffset ] ); nOffset = hb_deserializeHash( pItem, cdpIn, cdpOut, pBuffer, nOffset + 4, nLen, pRefList ); @@ -1610,7 +1623,7 @@ static HB_SIZE hb_deserializeItem( PHB_ITEM pItem, hb_errRT_BASE_Ext1( EG_ARG, 3016, NULL, HB_ERR_FUNCNAME, 0, EF_CANDEFAULT, 1, pItem ); szVal = NULL; } - /* no break; */ + /* fallthrough */ default: hb_itemClear( pItem ); diff --git a/src/rtl/strtoexp.c b/src/rtl/strtoexp.c index 21515f1feb..f0a5e3af52 100644 --- a/src/rtl/strtoexp.c +++ b/src/rtl/strtoexp.c @@ -112,6 +112,7 @@ HB_FUNC( HB_STRTOEXP ) case '\\': case '"': *pDst++ = '\\'; + /* fallthrough */ default: *pDst++ = ch; break; diff --git a/src/vm/classes.c b/src/vm/classes.c index 8163f6bab9..71b1aec286 100644 --- a/src/vm/classes.c +++ b/src/vm/classes.c @@ -2804,6 +2804,7 @@ static HB_TYPE hb_clsGetItemType( PHB_ITEM pItem, HB_TYPE nDefault ) case 'c': if( hb_strnicmp( hb_itemGetCPtr( pItem ), "code", 4 ) == 0 ) return HB_IT_BLOCK; + /* fallthrough */ case '\0': return HB_IT_STRING; diff --git a/src/vm/task.c b/src/vm/task.c index ba3caf0947..7690ae90e3 100644 --- a/src/vm/task.c +++ b/src/vm/task.c @@ -752,13 +752,13 @@ void hb_taskResume( void * pTaskPtr ) #endif case TASK_SLEEPING: hb_taskWakeUp( pTask ); - /* no break */ + /* fallthrough */ #if defined( HB_HAS_UCONTEXT ) case TASK_INIT: #endif case TASK_SUSPEND: pTask->state = TASK_RUNNING; - /* no break */ + /* fallthrough */ case TASK_RUNNING: #if defined( HB_HAS_UCONTEXT ) {