upp.src: Fixed CLANG warnings in Win32

git-svn-id: svn://ultimatepp.org/upp/trunk@14099 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2020-02-27 20:14:56 +00:00
parent 97f0493e6e
commit 301cc8af51
13 changed files with 47 additions and 34 deletions

View file

@ -247,7 +247,7 @@ LONG __stdcall sDumpHandler(LPEXCEPTION_POINTERS ep) {
char h[200];
sprintf(h, "CRASH: %d-%02d-%02d %02d:%02d:%02d code: 0x%X address: 0x%p",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond,
er->ExceptionCode, er->ExceptionAddress);
(int)er->ExceptionCode, er->ExceptionAddress);
RLOG("============ CRASH ================================================");
RLOG(h);
return sPrev ? (*sPrev)(ep) : 0 /*EXCEPTION_CONTINUE_SEARCH*/;

View file

@ -262,7 +262,7 @@ template<> void Jsonize(JsonIO& io, int64& var)
}
if(IsNumber(v)) {
double d = v;
if(d >= INT64_MIN && d <= INT64_MAX) {
if(FitsInInt64(d)) {
var = (int64)d;
return;
}

View file

@ -318,6 +318,11 @@ int SignificantBits64(uint64 x)
#endif
}
inline bool FitsInInt64(double x)
{
return x >= -9223372036854775808.0 && x < 9223372036854775808.0;
}
#if defined(COMPILER_MINGW) && !defined(COMPILER_CLANG)
#define MINGW_TLS_PATCH

View file

@ -762,7 +762,7 @@ AbortExc::AbortExc() :
String GetErrorMessage(DWORD dwError) {
char h[2048];
sprintf(h, "%08x", dwError);
sprintf(h, "%08x", (int)dwError);
#ifdef PLATFORM_WINCE //TODO
return h;
#else

View file

@ -46,7 +46,7 @@ struct alignas(16) DbgBlkHeader {
static const char *DbgFormat(char *b, DbgBlkHeader *p)
{
sprintf(b, "--memory-breakpoint__ %u ", (dword)~(p->serial ^ (uintptr_t)p));
sprintf(b, "--memory-breakpoint__ %u ", (unsigned int)~(p->serial ^ (uintptr_t)p));
return b;
}

View file

@ -144,7 +144,7 @@ int64 ffloor64(double value)
int64 fceil64(double value)
{
return value >= INT64_MAX ? INT64_MAX : value <= INT64_MIN ? INT64_MIN
return value >= (double)INT64_MAX ? INT64_MAX : value <= (double)INT64_MIN ? INT64_MIN
: (int64)ceil(value);
}

View file

@ -4,6 +4,13 @@
namespace Upp {
#ifdef COMPILER_CLANG
#define CLANG_NOTHROW __attribute__((nothrow))
#else
#define CLANG_NOTHROW
#endif
#define LLOG(x) // DLOG(x)
int GetClipboardFormatCode(const char *format_id);
@ -82,7 +89,7 @@ String Get(UDropTarget *dt, const char *fmt)
return dt->Get(fmt);
}
STDMETHODIMP UDropTarget::QueryInterface(REFIID iid, void ** ppv)
STDMETHODIMP CLANG_NOTHROW UDropTarget::QueryInterface(REFIID iid, void ** ppv)
{
if(iid == IID_IUnknown || iid == IID_IDropTarget) {
*ppv = this;
@ -152,7 +159,7 @@ void UDropTarget::Repeat()
Ctrl::DnDRepeat();
}
STDMETHODIMP UDropTarget::DragEnter(LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect)
STDMETHODIMP CLANG_NOTHROW UDropTarget::DragEnter(LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect)
{
GuiLock __;
LLOG("DragEnter " << pt);
@ -177,7 +184,7 @@ STDMETHODIMP UDropTarget::DragEnter(LPDATAOBJECT pDataObj, DWORD grfKeyState, PO
}
STDMETHODIMP UDropTarget::DragOver(DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect)
STDMETHODIMP CLANG_NOTHROW UDropTarget::DragOver(DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect)
{
LLOG("DragOver " << pt << " keys: " << grfKeyState);
DnD(pt, false, pdwEffect, grfKeyState);
@ -197,7 +204,7 @@ void UDropTarget::EndDrag()
Ctrl::DnDLeave();
}
STDMETHODIMP UDropTarget::DragLeave()
STDMETHODIMP CLANG_NOTHROW UDropTarget::DragLeave()
{
LLOG("DragLeave");
EndDrag();
@ -205,7 +212,7 @@ STDMETHODIMP UDropTarget::DragLeave()
return NOERROR;
}
STDMETHODIMP UDropTarget::Drop(LPDATAOBJECT, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect)
STDMETHODIMP CLANG_NOTHROW UDropTarget::Drop(LPDATAOBJECT, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect)
{
LLOG("Drop");
if(Ctrl::GetDragAndDropSource())
@ -285,7 +292,7 @@ struct UDropSource : public IDropSource {
UDropSource() { rc = 1; }
};
STDMETHODIMP UDataObject::QueryInterface(REFIID iid, void ** ppv)
STDMETHODIMP CLANG_NOTHROW UDataObject::QueryInterface(REFIID iid, void ** ppv)
{
if(iid == IID_IUnknown || iid == IID_IDataObject) {
*ppv = this;
@ -311,7 +318,7 @@ void SetMedium(STGMEDIUM *medium, const String& data)
}
}
STDMETHODIMP UDataObject::GetData(FORMATETC *fmtetc, STGMEDIUM *medium)
STDMETHODIMP CLANG_NOTHROW UDataObject::GetData(FORMATETC *fmtetc, STGMEDIUM *medium)
{
String fmt = FromWin32CF(fmtetc->cfFormat);
ClipData *s = data.FindPtr(fmt);
@ -323,17 +330,17 @@ STDMETHODIMP UDataObject::GetData(FORMATETC *fmtetc, STGMEDIUM *medium)
return DV_E_FORMATETC;
}
STDMETHODIMP UDataObject::GetDataHere(FORMATETC *, STGMEDIUM *)
STDMETHODIMP CLANG_NOTHROW UDataObject::GetDataHere(FORMATETC *, STGMEDIUM *)
{
return DV_E_FORMATETC;
}
STDMETHODIMP UDataObject::QueryGetData(FORMATETC *fmtetc)
STDMETHODIMP CLANG_NOTHROW UDataObject::QueryGetData(FORMATETC *fmtetc)
{
return data.Find(FromWin32CF(fmtetc->cfFormat)) >= 0 ? S_OK : DV_E_FORMATETC;
}
STDMETHODIMP UDataObject::GetCanonicalFormatEtc(FORMATETC *, FORMATETC *pformatetcOut)
STDMETHODIMP CLANG_NOTHROW UDataObject::GetCanonicalFormatEtc(FORMATETC *, FORMATETC *pformatetcOut)
{
pformatetcOut->ptd = NULL;
return E_NOTIMPL;
@ -345,7 +352,7 @@ static int CF_PERFORMEDDROPEFFECT = RegisterClipboardFormat(_T("Performed DropEf
static int CF_PERFORMEDDROPEFFECT = RegisterClipboardFormat("Performed DropEffect");
#endif
STDMETHODIMP UDataObject::SetData(FORMATETC *fmtetc, STGMEDIUM *medium, BOOL release)
STDMETHODIMP CLANG_NOTHROW UDataObject::SetData(FORMATETC *fmtetc, STGMEDIUM *medium, BOOL release)
{
if(fmtetc->cfFormat == CF_PERFORMEDDROPEFFECT && medium->tymed == TYMED_HGLOBAL) {
DWORD *val = (DWORD*)GlobalLock(medium->hGlobal);
@ -358,7 +365,7 @@ STDMETHODIMP UDataObject::SetData(FORMATETC *fmtetc, STGMEDIUM *medium, BOOL rel
return E_NOTIMPL;
}
STDMETHODIMP UDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ief)
STDMETHODIMP CLANG_NOTHROW UDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ief)
{
UEnumFORMATETC *ef = new UEnumFORMATETC;
ef->data = this;
@ -367,23 +374,23 @@ STDMETHODIMP UDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ief)
return S_OK;
}
STDMETHODIMP UDataObject::DAdvise(FORMATETC *, DWORD, IAdviseSink *, DWORD *)
STDMETHODIMP CLANG_NOTHROW UDataObject::DAdvise(FORMATETC *, DWORD, IAdviseSink *, DWORD *)
{
return OLE_E_ADVISENOTSUPPORTED;
}
STDMETHODIMP UDataObject::DUnadvise(DWORD)
STDMETHODIMP CLANG_NOTHROW UDataObject::DUnadvise(DWORD)
{
return OLE_E_ADVISENOTSUPPORTED;
}
STDMETHODIMP UDataObject::EnumDAdvise(LPENUMSTATDATA FAR*)
STDMETHODIMP CLANG_NOTHROW UDataObject::EnumDAdvise(LPENUMSTATDATA FAR*)
{
return OLE_E_ADVISENOTSUPPORTED;
}
STDMETHODIMP UEnumFORMATETC::QueryInterface(REFIID riid, void FAR* FAR* ppvObj)
STDMETHODIMP CLANG_NOTHROW UEnumFORMATETC::QueryInterface(REFIID riid, void FAR* FAR* ppvObj)
{
if (riid == IID_IUnknown || riid == IID_IEnumFORMATETC) {
*ppvObj = this;
@ -394,7 +401,7 @@ STDMETHODIMP UEnumFORMATETC::QueryInterface(REFIID riid, void FAR* FAR* ppvObj)
return ResultFromScode(E_NOINTERFACE);
}
STDMETHODIMP UEnumFORMATETC::Next(ULONG n, FORMATETC *t, ULONG *fetched) {
STDMETHODIMP CLANG_NOTHROW UEnumFORMATETC::Next(ULONG n, FORMATETC *t, ULONG *fetched) {
if(t == NULL)
return E_INVALIDARG;
if(fetched) *fetched = 0;
@ -406,20 +413,20 @@ STDMETHODIMP UEnumFORMATETC::Next(ULONG n, FORMATETC *t, ULONG *fetched) {
return n ? S_FALSE : NOERROR;
}
STDMETHODIMP UEnumFORMATETC::Skip(ULONG n) {
STDMETHODIMP CLANG_NOTHROW UEnumFORMATETC::Skip(ULONG n) {
ii += n;
if(ii >= data->data.GetCount())
return S_FALSE;
return NOERROR;
}
STDMETHODIMP UEnumFORMATETC::Reset()
STDMETHODIMP CLANG_NOTHROW UEnumFORMATETC::Reset()
{
ii = 0;
return NOERROR;
}
STDMETHODIMP UEnumFORMATETC::Clone(IEnumFORMATETC **newEnum)
STDMETHODIMP CLANG_NOTHROW UEnumFORMATETC::Clone(IEnumFORMATETC **newEnum)
{
if(newEnum == NULL)
return E_INVALIDARG;
@ -431,7 +438,7 @@ STDMETHODIMP UEnumFORMATETC::Clone(IEnumFORMATETC **newEnum)
return NOERROR;
}
STDMETHODIMP UDropSource::QueryInterface(REFIID riid, void **ppvObj)
STDMETHODIMP CLANG_NOTHROW UDropSource::QueryInterface(REFIID riid, void **ppvObj)
{
if (riid == IID_IUnknown || riid == IID_IDropSource) {
*ppvObj = this;
@ -442,7 +449,7 @@ STDMETHODIMP UDropSource::QueryInterface(REFIID riid, void **ppvObj)
return ResultFromScode(E_NOINTERFACE);
}
STDMETHODIMP UDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState)
STDMETHODIMP CLANG_NOTHROW UDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState)
{
if(fEscapePressed)
return DRAGDROP_S_CANCEL;
@ -453,7 +460,7 @@ STDMETHODIMP UDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeySta
return NOERROR;
}
STDMETHODIMP UDropSource::GiveFeedback(DWORD dwEffect)
STDMETHODIMP CLANG_NOTHROW UDropSource::GiveFeedback(DWORD dwEffect)
{
LLOG("GiveFeedback");
Image m = IsNull(move) ? copy : move;

View file

@ -46,7 +46,7 @@ void ESC_to_number(EscEscape& e)
if(e[0].IsArray()) {
double d = ScanDouble((String)e[0]);
if(!IsNull(d)) {
if(d <= INT64_MAX && d >= INT64_MIN)
if(FitsInInt64(d))
e = ScanInt64((String)e[0]);
else
e = d;

View file

@ -212,7 +212,7 @@ String EscValue::ToString(int maxlen, int indent_step, bool hex, int indent) con
s << FormatInt64((int64)number);
else
s << Format("%.8g", number);
if(hex && number >= INT64_MIN && number <= INT64_MAX && (int64)number == number)
if(hex && FitsInInt64(number) && (int64)number == number)
s << " 0x" << Format64Hex((int64)number);
if(hex && number >= 0 && number < 65536 && (int)number == number)
s << ' ' << AsCString(ToUtf8(WString((int)number, 1)));

View file

@ -541,7 +541,7 @@ void PdfDraw::DrawPolyPolyPolygonOp(const Point *vertices, int vertex_count,
if(fill) PutrgColor(color, pattern);
if(stroke) { PutRGColor(outline); PutLineWidth(width); }
if(!fill && !stroke) return;
const char *closeop = (fill & stroke ? "B*" : fill ? "f*" : "S");
const char *closeop = fill && stroke ? "B*" : fill ? "f*" : "S";
while(--disjunct_polygon_count_count >= 0) {
int disj = *disjunct_polygon_counts++;
while(disj > 0) {

View file

@ -416,13 +416,14 @@ bool Pdb::RunToException()
#else
&& bp_set.Find(t.context32.Eip - 1) >= 0
#endif
) // We have stopped at breakpoint, need to move address back
) { // We have stopped at breakpoint, need to move address back
#ifdef CPU_64
if(win64)
t.context64.Rip--;
else
#endif
t.context32.Eip--;
}
context = t;
}
}

View file

@ -182,7 +182,7 @@ int64 Pdb::GetInt64(Pdb::Val v)
GETINT(SINT8, int64);
case FLT:
case DBL:
if(v.fval >= _I64_MIN && v.fval <= _I64_MAX)
if(FitsInInt64(v.fval))
return (int64)v.fval;
}
ThrowError("Invalid operand");

View file

@ -341,7 +341,7 @@ void InstantSetup()
bmSet(bm, "RELEASE_LINKMODE", "0");
bmSet(bm, "RELEASE_OPTIONS", "-O3 ");
bmSet(bm, "RELEASE_FLAGS", "");
bmSet(bm, "RELEASE_LINK", "Wl,-pdb= -Wl,--stack,20000000");
bmSet(bm, "RELEASE_LINK", "-Wl,--stack,20000000");
bmSet(bm, "DEBUGGER", "gdb");
bmSet(bm, "ALLOW_PRECOMPILED_HEADERS", "1");
bmSet(bm, "DISABLE_BLITZ", "");