# - Disabled due to IoTivity not being ANSI compatible
# - warning C4232: nonstandard extension used: 'read': address of dllimport 'fread' is not static, identity not guaranteed
# - fread, frwrite, etc are provided by the platform and cannot be changed.
+ # - warning C4503: decorated name length exceeded, name was truncated.
+ # - Might cause issues during linking and debugging.
+ # - warning C4512: assignment operator could not be generated.
+ # - It's an acceptable warning displayed only by Visual Studio 2013 compiler.
# - warning C4706: assignment within conditional expression
# - Disabled due to the widespread usage in IoTivity and low impact.
- env.AppendUnique(CCFLAGS=['/wd4127', '/wd4200', '/wd4201', '/wd4204', '/wd4214', '/wd4221', '/wd4232', '/wd4706'])
+ env.AppendUnique(CCFLAGS=['/wd4127', '/wd4200', '/wd4201', '/wd4204', '/wd4214', '/wd4221', '/wd4232', '/wd4503', '/wd4512', '/wd4706'])
+ # Enabling /W3 warnings globally for Windows builds.
+ env.AppendUnique(CCFLAGS=['/W3', '/WX'])
env.AppendUnique(CCFLAGS=['/EHsc'])
# Set release/debug flags
# will not work on all systems supported by IoTivity. This will prevent Visual
# Studio from displaying unwanted warnings.
# See https://msdn.microsoft.com/en-us/library/ttcz0bys.aspx for more details.
- env.AppendUnique(CPPDEFINES=['_CRT_SECURE_NO_WARNINGS', '_CRT_NONSTDC_NO_WARNINGS'])
+ env.AppendUnique(CPPDEFINES=['_CRT_SECURE_NO_WARNINGS', '_CRT_NONSTDC_NO_WARNINGS', '_SCL_SECURE_NO_WARNINGS'])
if env.get('UWP_APP') != '1':
# Add Desktop specific libraries
# Macro needed for Windows builds to avoid __declspec(dllexport) and __declspec(dllimport) for cJSON APIs.
cjson_env.AppendUnique(CPPDEFINES = ['CJSON_HIDE_SYMBOLS'])
if cjson_env['CC'] == 'cl':
- cjson_env.AppendUnique(CCFLAGS = ['/W4', '/WX'])
+ cjson_env.AppendUnique(CCFLAGS = ['/W4'])
libcjson = cjson_env.StaticLibrary('cjson', ['cJSON.c'], OBJPREFIX='libcjson_')
cjson_env.InstallTarget(libcjson, 'cjson');
gtest_build_env = gtest_env.Clone()
gtest_build_env.AppendUnique(CPPPATH = [ os.path.join(gtest_dir, 'include') ])
gtest_build_env.AppendUnique(CXXFLAGS = ['/EHsc'])
- gtest_build_env.AppendUnique(CCFLAGS = ['/W4', '/WX'])
+ gtest_build_env.AppendUnique(CCFLAGS = ['/W4'])
gtest = gtest_build_env.StaticLibrary(target = 'gtest', source = [ '%s/src/gtest-all.cc' % gtest_dir ])
gtest_main = gtest_build_env.StaticLibrary(target = 'gtest_main', source = [ '%s/src/gtest_main.cc' % gtest_dir ])
gtest_env.InstallTarget(gtest, 'gtest')
libcoap_src = glob.glob(os.path.join(libcoap_src_root, '*.c'))
if libcoap_env['CC'] == 'cl':
- libcoap_env.AppendUnique(CCFLAGS = ['/W4', '/WX'])
+ libcoap_env.AppendUnique(CCFLAGS = ['/W4'])
libcoap = libcoap_env.StaticLibrary('coap', libcoap_src, OBJPREFIX='libcoap_')
mbedtls_env = env.Clone()
if mbedtls_env['CC'] == 'cl':
- mbedtls_env.AppendUnique(CCFLAGS = ['/W4', '/WX'])
+ mbedtls_env.AppendUnique(CCFLAGS = ['/W4'])
mbedtls_env.AppendUnique(CPPPATH = [
mbedtls_dir,
shutil.rmtree(sqlite_tmp_dir)
if target_os in ['windows']:
- sqlite_env.AppendUnique(CCFLAGS = ['/W4', '/WX'])
+ sqlite_env.AppendUnique(CCFLAGS = ['/W4'])
if sqlite_env.get('UWP_APP') == '1':
sqlite_env.AppendUnique(CPPDEFINES=['SQLITE_OS_WINRT'])
libsqlite3 = sqlite_env.StaticLibrary('sqlite3', sqlite_c)
######################################################################
if target_os in ['windows', 'msys_nt']:
- common_env.AppendUnique(CCFLAGS=['/W4', '/WX'])
+ common_env.AppendUnique(CCFLAGS=['/W4'])
######################################################################
# Add platform-specific helper library
# Enable treating all warnings as errors for Windows.
if target_os in ['windows', 'msys_nt']:
- common_test_env.AppendUnique(CCFLAGS=['/W4', '/WX'])
+ common_test_env.AppendUnique(CCFLAGS=['/W4'])
SConscript('../oic_string/test/SConscript', exports = { 'test_env' : common_test_env})
SConscript('../oic_malloc/test/SConscript', exports = { 'test_env' : common_test_env})
print "MQ flag is %s" % with_mq
if target_os in ['msys_nt', 'windows']:
- connectivity_env.AppendUnique(CCFLAGS=['/W4', '/WX'])
+ connectivity_env.AppendUnique(CCFLAGS=['/W4'])
targets_disallow_multitransport = ['arduino']
if target_os not in ['msys_nt', 'windows']:
catest_env.AppendUnique(LIBS = ['m'])
else:
- catest_env.AppendUnique(CCFLAGS=['/W4', '/WX'])
+ catest_env.AppendUnique(CCFLAGS=['/W4'])
######################################################################
# Source files and Targets
if target_os in ['windows', 'msys_nt']:
libocsrm_env.AppendUnique(LIBPATH = [os.path.join(libocsrm_env.get('BUILD_DIR'), 'resource', 'oc_logger')])
- # - warning C4200: nonstandard extension used: zero-sized array in struct/union
- # - warning C4214: nonstandard extension used: bit field types other than int
- # - warnings inherited from a header included from libcoap
- libocsrm_env.AppendUnique(CCFLAGS=['/wd4200', '/wd4214', '/W4', '/WX'])
+ libocsrm_env.AppendUnique(CCFLAGS=['/W4'])
if target_os in ['linux', 'android', 'tizen', 'msys_nt', 'windows'] and libocsrm_env.get('SECURED') == '1':
SConscript('provisioning/SConscript', 'libocsrm_env')
security_test_env = test_env.Clone()
if security_test_env.get('TARGET_OS') in ['windows', 'msys_nt']:
- security_test_env.AppendUnique(CCFLAGS=['/W4', '/WX'])
+ security_test_env.AppendUnique(CCFLAGS=['/W4'])
SConscript('../unittest/SConscript', exports = { 'test_env' : security_test_env })
SConscript('../provisioning/unittest/SConscript', exports = { 'test_env' : security_test_env })
if target_os not in ['windows', 'msys_nt']:
liboctbstack_env.AppendUnique(LIBS = ['m'])
else:
- liboctbstack_env.AppendUnique(CCFLAGS=['/W4', '/WX'])
+ liboctbstack_env.AppendUnique(CCFLAGS=['/W4'])
# octbstack.def specifies the list of functions exported by octbstack.dll.
liboctbstack_env.Replace(WINDOWS_INSERT_DEF = ['1'])
stacktest_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
if target_os in ['msys_nt', 'windows']:
- stacktest_env.AppendUnique(CCFLAGS=['/W4', '/WX'])
+ stacktest_env.AppendUnique(CCFLAGS=['/W4'])
else:
stacktest_env.PrependUnique(LIBS = ['m'])
if target_os in ['tizen', 'linux']:
bool emptyData() const;
- int numberOfAttributes() const;
+ size_t numberOfAttributes() const;
bool erase(const std::string& str);
val = boost::get<T>(x->second);
return true;
}
- catch (boost::bad_get& e)
+ catch (boost::bad_get&)
{
val = T();
return false;
{
val = boost::get<T>(x->second);
}
- catch (boost::bad_get& e)
+ catch (boost::bad_get&)
{
return val;
}
{
return boost::get<T>(m_values[m_attrName]);
}
- catch (boost::bad_get& e)
+ catch (boost::bad_get&)
{
T val = T();
return val;
dimensions[2] = 0;
dimTotal = calcDimTotal(dimensions);
- array = (void*)OICMalloc(dimTotal * root_size);
+ m_array = (void*)OICMalloc(dimTotal * root_size);
for(size_t i = 0; i < dimensions[0]; ++i)
{
- copy_to_array(arr[i], array, i);
+ copy_to_array(arr[i], m_array, i);
}
}
dimensions[1] = std::max(dimensions[1], arr[i].size());
}
dimTotal = calcDimTotal(dimensions);
- array = (void*)OICCalloc(1, dimTotal * root_size);
+ m_array = (void*)OICCalloc(1, dimTotal * root_size);
for(size_t i = 0; i < dimensions[0]; ++i)
{
for(size_t j = 0; j < dimensions[1] && j < arr[i].size(); ++j)
{
- copy_to_array(arr[i][j], array, i*dimensions[1] + j);
+ copy_to_array(arr[i][j], m_array, i*dimensions[1] + j);
}
}
}
}
dimTotal = calcDimTotal(dimensions);
- array = (void*)OICCalloc(1, dimTotal * root_size);
+ m_array = (void*)OICCalloc(1, dimTotal * root_size);
for(size_t i = 0; i < dimensions[0]; ++i)
{
{
for(size_t k = 0; k < dimensions[2] && k < arr[i][j].size(); ++k)
{
- copy_to_array(arr[i][j][k], array,
+ copy_to_array(arr[i][j][k], m_array,
dimensions[2] * j +
dimensions[2] * dimensions[1] * i +
k);
size_t dimensions[MAX_REP_ARRAY_DEPTH];
size_t root_size;
size_t dimTotal;
- void* array;
+ void* m_array;
};
template<>
{
case AttributeType::Integer:
OCRepPayloadSetIntArrayAsOwner(payload, item.attrname().c_str(),
- (int64_t*)vis.array,
+ (int64_t*)vis.m_array,
vis.dimensions);
break;
case AttributeType::Double:
OCRepPayloadSetDoubleArrayAsOwner(payload, item.attrname().c_str(),
- (double*)vis.array,
+ (double*)vis.m_array,
vis.dimensions);
break;
case AttributeType::Boolean:
OCRepPayloadSetBoolArrayAsOwner(payload, item.attrname().c_str(),
- (bool*)vis.array,
+ (bool*)vis.m_array,
vis.dimensions);
break;
case AttributeType::String:
OCRepPayloadSetStringArrayAsOwner(payload, item.attrname().c_str(),
- (char**)vis.array,
+ (char**)vis.m_array,
vis.dimensions);
break;
case AttributeType::OCByteString:
OCRepPayloadSetByteStringArrayAsOwner(payload, item.attrname().c_str(),
- (OCByteString *)vis.array, vis.dimensions);
+ (OCByteString *)vis.m_array, vis.dimensions);
break;
case AttributeType::OCRepresentation:
OCRepPayloadSetPropObjectArrayAsOwner(payload, item.attrname().c_str(),
- (OCRepPayload**)vis.array, vis.dimensions);
+ (OCRepPayload**)vis.m_array, vis.dimensions);
break;
default:
throw std::logic_error(std::string("GetPayloadArray: Not Implemented") +
template<>
int OCRepresentation::payload_array_helper_copy<int>(size_t index, const OCRepPayloadValue* pl)
{
+// Needs to be removed as part of IOT-1726 fix.
+#ifdef _MSC_VER
+#pragma warning(suppress : 4244)
return pl->arr.iArray[index];
+#else
+ return pl->arr.iArray[index];
+#endif
}
template<>
double OCRepresentation::payload_array_helper_copy<double>(size_t index, const OCRepPayloadValue* pl)
setNULL(val->name);
break;
case OCREP_PROP_INT:
+ // Needs to be removed as part of IOT-1726 fix.
+#ifdef _MSC_VER
+#pragma warning(suppress : 4244)
setValue<int>(val->name, val->i);
+#else
+ setValue<int>(val->name, val->i);
+#endif
break;
case OCREP_PROP_DOUBLE:
setValue<double>(val->name, val->d);
return true;
}
- int OCRepresentation::numberOfAttributes() const
+ size_t OCRepresentation::numberOfAttributes() const
{
return m_values.size();
}
bool OCRepresentation::erase(const std::string& str)
{
- return m_values.erase(str);
+ return (m_values.erase(str) > 0);
}
void OCRepresentation::setNULL(const std::string& str)
static const char piid1[] = "e987b8f5-527a-454e-98c1-1eef2e5f1cf5";
const char devicename1[] = "device name";
OCRepPayload *device = OCRepPayloadCreate();
- EXPECT_TRUE(device);
+ EXPECT_NE((decltype(device))NULL, device);
EXPECT_TRUE(OCRepPayloadAddResourceType(device, OC_RSRVD_RESOURCE_TYPE_DEVICE));
EXPECT_TRUE(OCRepPayloadAddResourceType(device, "oic.d.tv"));
EXPECT_TRUE(OCRepPayloadSetPropString(device, OC_RSRVD_DEVICE_ID, sid1));
size_t dim[MAX_REP_ARRAY_DEPTH] = {1, 0, 0};
char **dt = (char **)OICMalloc(sizeof(char *) * 1);
- EXPECT_TRUE(dt);
+ EXPECT_NE((decltype(dt))NULL, dt);
dt[0] = OICStrdup(OC_DATA_MODEL_VERSION);
EXPECT_TRUE(OCRepPayloadSetStringArray(device, OC_RSRVD_DATA_MODEL_VERSION, (const char **)dt, dim));
OICFree(dt[0]);
OCPayloadDestroy(parsedDevice);
device = OCRepPayloadCreate();
- EXPECT_TRUE(device);
+ EXPECT_NE((decltype(device))NULL, device);
EXPECT_TRUE(OCRepPayloadAddResourceType(device, OC_RSRVD_RESOURCE_TYPE_DEVICE));
EXPECT_TRUE(OCRepPayloadAddResourceType(device, "oic.d.tv"));
EXPECT_TRUE(OCRepPayloadSetPropString(device, OC_RSRVD_DEVICE_NAME, devicename1));
EXPECT_TRUE(OCRepPayloadSetPropString(device, OC_RSRVD_SPEC_VERSION, OC_SPEC_VERSION));
size_t dim1[MAX_REP_ARRAY_DEPTH] = {2, 0, 0};
char **dt1 = (char **)OICMalloc(sizeof(char *) * 2);
- EXPECT_TRUE(dt1);
+ EXPECT_NE((decltype(dt1))NULL, dt1);
dt1[0] = OICStrdup("ocf.res.1.1.0");
dt1[1] = OICStrdup("ocf.sh.1.1.0");
OCRepPayloadSetStringArray(device, OC_RSRVD_DATA_MODEL_VERSION, (const char**)dt1, dim1);