Thanks Noel,
I'm reviewing the changes an will return to you in few days.
Regards
Marti
On 7/28/2017 11:13 PM, Noel Carboni wrote:
Hi Marti,
I've completed my changes to the LittleCMS sources. I've reviewed and
tested them with the testbed.
http://Noel.ProDigitalSoftware.com/temp/ProposedLittleCMSChanges.zip
With this set of files, derived from the Git trunk as of July 26, you
can now use the C++ compiler and higher warning levels.
I followed this philosophy:
1.Don't alter the external interface (lcms2.h)
2.Make the use of signed and unsigned types consistent to reduce the
hundreds of warnings emitted when -Wall is used with the pickier C++
compiler.
3.Avoid casts if possible.
4.Review all changes and pass all tests in the testbed project.
5.Maintain or improve performance.
If you choose to enable the Visual Studio 2017 C++ compiler and the
highest warning level for your ongoing work, the following may be of
interest:
You may want to specifically disable several of the specific overly
pedantic -Wall warnings by putting the following additional options on
the VS 2017 C++ compiler command line:
* /wd4711 /wd4820 /wd4061 /wd4774 /wd4710 /wd4668 /wd4738*
The above options specifically quiet the following warnings, which may
not be helpful to you in ongoing development:
* warning C4711: function 'xxxxxxxxxxxxxx' selected for automatic
inline expansion*
* warning C4820: 'xxxxxxxx': 'n' bytes padding added after data member *
* warning C4061: enumerator 'xxxxxxxxxxxxx' in switch of enum
'yyyyyyyyyyyyy' is not explicitly handled by a case label*
* warning C4774: '_snprintf' : format string expected in argument 3
is not a string literal*
* warning C4710: 'int _snprintf(char *const ,const ::size_t,const
char *const ,...)': function not inlined*
* warning C4668: '_M_HYBRID_X86_ARM64' is not defined as a
preprocessor macro, replacing with '0' for '#if/#elif'*
* warning C4738: storing 32-bit float result in memory, possible loss
of performance*
After suppressing the above, there is a remaining "unsafe conversion"
warning emitted for cmsxform.c that may indicate a possible real
problem, especially in light of compiling this library for different
systems with different compilers. This is no different than in the
code I started with.**
Besides the code compiling cleaner, the testbed project also shows
performance changes for the better in my testing.
-Noel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user