1*4882a593SmuzhiyunFrom 653674e11872465dd5edf1c1e8413ea813d7e086 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Khem Raj <raj.khem@gmail.com>
3*4882a593SmuzhiyunDate: Mon, 23 Apr 2018 23:07:21 -0700
4*4882a593SmuzhiyunSubject: [PATCH] Fix narrowing errors -Wc++11-narrowing
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunClang 6.x finds these errors
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun    ../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluates to -2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
9*4882a593Smuzhiyun        case E_INVALIDARG          : txt = "E_INVALIDARG"; break ;
10*4882a593Smuzhiyun             ^
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunHRESULT causes the macro to be parsed as a signed long, so we need to force it
13*4882a593Smuzhiyunto be checked as an unsigned long instead.
14*4882a593Smuzhiyun
15*4882a593Smuzhiyunalso reported here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224930
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunUpstream-Status: Pending
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunSigned-off-by: Khem Raj <raj.khem@gmail.com>
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun---
22*4882a593Smuzhiyun CPP/Windows/ErrorMsg.cpp | 14 +++++++-------
23*4882a593Smuzhiyun 1 file changed, 7 insertions(+), 7 deletions(-)
24*4882a593Smuzhiyun
25*4882a593Smuzhiyundiff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
26*4882a593Smuzhiyunindex 99684ae..78a64ba 100644
27*4882a593Smuzhiyun--- a/CPP/Windows/ErrorMsg.cpp
28*4882a593Smuzhiyun+++ b/CPP/Windows/ErrorMsg.cpp
29*4882a593Smuzhiyun@@ -15,13 +15,13 @@ UString MyFormatMessage(DWORD errorCode)
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun   switch(errorCode) {
32*4882a593Smuzhiyun     case ERROR_NO_MORE_FILES   : txt = "No more files"; break ;
33*4882a593Smuzhiyun-    case E_NOTIMPL             : txt = "E_NOTIMPL"; break ;
34*4882a593Smuzhiyun-    case E_NOINTERFACE         : txt = "E_NOINTERFACE"; break ;
35*4882a593Smuzhiyun-    case E_ABORT               : txt = "E_ABORT"; break ;
36*4882a593Smuzhiyun-    case E_FAIL                : txt = "E_FAIL"; break ;
37*4882a593Smuzhiyun-    case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
38*4882a593Smuzhiyun-    case E_OUTOFMEMORY         : txt = "E_OUTOFMEMORY"; break ;
39*4882a593Smuzhiyun-    case E_INVALIDARG          : txt = "E_INVALIDARG"; break ;
40*4882a593Smuzhiyun+    case (DWORD) E_NOTIMPL             : txt = "E_NOTIMPL"; break ;
41*4882a593Smuzhiyun+    case (DWORD) E_NOINTERFACE         : txt = "E_NOINTERFACE"; break ;
42*4882a593Smuzhiyun+    case (DWORD) E_ABORT               : txt = "E_ABORT"; break ;
43*4882a593Smuzhiyun+    case (DWORD) E_FAIL                : txt = "E_FAIL"; break ;
44*4882a593Smuzhiyun+    case (DWORD) STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
45*4882a593Smuzhiyun+    case (DWORD) E_OUTOFMEMORY         : txt = "E_OUTOFMEMORY"; break ;
46*4882a593Smuzhiyun+    case (DWORD) E_INVALIDARG          : txt = "E_INVALIDARG"; break ;
47*4882a593Smuzhiyun     case ERROR_DIRECTORY          : txt = "Error Directory"; break ;
48*4882a593Smuzhiyun     default:
49*4882a593Smuzhiyun       txt = strerror(errorCode);
50