[Libreoffice-commits] core.git: 27 commits - bridges/source configure.ac embedserv/source extensions/source external/boost external/clucene external/glm external/icu external/liborcus external/nss external/poppler fpicker/source sal/cpprt sal/Library_sal.mk sc/inc solenv/gbuild solenv/gcc-wrappers
Stephan Bergmann
sbergman at redhat.com
Tue Dec 1 23:02:49 PST 2015
bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx | 6
configure.ac | 44 +--
embedserv/source/embed/syswinwrapper.cxx | 8
embedserv/source/inc/embeddocaccess.hxx | 8
embedserv/source/inc/stdafx.h | 16 +
embedserv/source/inc/syswinwrapper.hxx | 4
extensions/source/activex/SOActiveX.h | 9
extensions/source/activex/StdAfx2.h | 16 +
extensions/source/activex/so_activex.cxx | 9
external/boost/clang-cl.patch.0 | 183 +++++++++++++++-
external/clucene/patches/clucene-warnings.patch | 20 -
external/glm/UnpackedTarball_glm.mk | 1
external/glm/clang-cl.patch.0 | 32 ++
external/icu/UnpackedTarball_icu.mk | 1
external/icu/clang-cl.patch.0 | 26 ++
external/liborcus/Library_orcus-parser.mk | 7
external/nss/UnpackedTarball_nss.mk | 1
external/nss/clang-cl.patch.0 | 56 ++++
external/poppler/ExternalProject_poppler.mk | 2
fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx | 1
fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx | 12 -
sal/Library_sal.mk | 4
sal/cpprt/operators_new_delete.cxx | 10
sc/inc/lookupcache.hxx | 8
solenv/gbuild/platform/com_MSC_defs.mk | 6
solenv/gcc-wrappers/wrapper.cxx | 21 +
26 files changed, 442 insertions(+), 69 deletions(-)
New commits:
commit 06e32106cc4c0886c228b4dbfe7301222a96a231
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 16:23:16 2015 +0100
Avoid clang-cl -Werror,-Wbitfield-constant-conversion
...when (non-negative) QueryOp enumerators LESS/GREATER_EQUAL are crammed into
a 2-bit meOp bitfield, where enums are implictly signed for MSVC, so the values
actually storable in the bitfield range from -2 to +1.
The clang-cl warning would go away when fixing the underlying type of QueryOp as
unsigned, but then GCC would start to emit "error:
‘ScLookupCache::QueryCriteria::meOp’ is too small to hold all values of ‘enum
ScLookupCache::QueryOp’ [-Werror]."
So don't bother with bitfields at all: For QueryCritera, for one there's a
union member with a double and a pointer, so sizeof (QueryCriteria) will be
twice the size of double anyway; and for another, MSVC doesn't combine bitfields
of different type, so the bool members were separated from meOp anyway. For
QueryKey the reason for a bitfield is even less clear cut, and it might only
have been there so that comparing (negative!) values read out of
QueryCritera::meOp compare equal to values read out of QueryKey::meOp under
MSVC.
Change-Id: I69fb068bea914c00a29001155218cb9f1b8f8a9a
diff --git a/sc/inc/lookupcache.hxx b/sc/inc/lookupcache.hxx
index 4675f0d..9412de3 100644
--- a/sc/inc/lookupcache.hxx
+++ b/sc/inc/lookupcache.hxx
@@ -64,9 +64,9 @@ public:
double mfVal;
const OUString *mpStr;
};
- bool mbAlloc : 1;
- bool mbString : 1;
- QueryOp meOp : 2;
+ bool mbAlloc;
+ bool mbString;
+ QueryOp meOp;
void deleteString()
{
@@ -145,7 +145,7 @@ private:
{
SCROW mnRow;
SCTAB mnTab;
- QueryOp meOp : 2;
+ QueryOp meOp;
QueryKey( const ScAddress & rAddress, const QueryOp eOp ) :
mnRow( rAddress.Row()),
commit fea70bfb0624e4aa57bb8e4f1c229188b061f5d2
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 13:02:14 2015 +0100
external/icu: Work around a weird Windows bug in either make or clang-cl
...for now; workdir/UnpackedTarball/icu/source/tools/toolutil/Makefile invokes
the compiler with a -DU_HOST=\"...\" argument, and apparently directly executes
the compiler from CreateProcess, not going via a shell invocation for the recipe
line. This confuses clang-cl for whatever reason, and for whatever other
reason, forcing make to go via a shell invocation (by adding "true &&" into the
recipe line) fixes it.
Change-Id: I3757a8856f93228c19475b37f3037fa9519a426f
diff --git a/external/icu/clang-cl.patch.0 b/external/icu/clang-cl.patch.0
index cef630c..4df5d0f 100644
--- a/external/icu/clang-cl.patch.0
+++ b/external/icu/clang-cl.patch.0
@@ -1,3 +1,16 @@
+--- source/config/mh-cygwin-msvc
++++ source/config/mh-cygwin-msvc
+@@ -51,8 +51,8 @@
+ LDFLAGS+=-nologo
+
+ # Commands to compile
+-COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
++COMPILE.c= true && $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
+-COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
++COMPILE.cc= true && $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
+
+ # Commands to link
+ LINK.c= LINK.EXE -subsystem:console $(LDFLAGS)
--- source/runConfigureICU
+++ source/runConfigureICU
@@ -259,8 +259,8 @@
commit 97c8458b43abb9269866221f51db9d24de4a5380
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 12:57:41 2015 +0100
boost/external: More fixes for clang-cl
* Avoid errors about (somewhat different, but apparently in a way that MSVC
doesn't care) redeclarations of system header stuff (and working around that
with BOOST_USE_WINDOWS_H would lead to other problems).
* Need the workaround for broken MSVC 2010 STL iterator taxonomy for clang-cl,
too.
Change-Id: I4f9c9b5cc8a19856cc409450aac1fb1baa5554c9
diff --git a/external/boost/clang-cl.patch.0 b/external/boost/clang-cl.patch.0
index 6713dc0..71bf2d8 100644
--- a/external/boost/clang-cl.patch.0
+++ b/external/boost/clang-cl.patch.0
@@ -52,6 +52,105 @@
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__
+--- boost/date_time/filetime_functions.hpp
++++ boost/date_time/filetime_functions.hpp
+@@ -27,6 +27,16 @@
+ #include <boost/date_time/time.hpp>
+ #include <boost/date_time/date_defs.hpp>
+
++#if !defined(BOOST_USE_WINDOWS_H)
++extern "C" {
++ struct _FILETIME; // Windows Kits/8.1/Include/shared/minwindef.h
++ struct _SYSTEMTIME; // Windows Kits/8.1/Include/um/minwinbase.h
++ __declspec(dllimport) void __stdcall GetSystemTimeAsFileTime(_FILETIME* lpFileTime);
++ __declspec(dllimport) int __stdcall FileTimeToLocalFileTime(const _FILETIME* lpFileTime, _FILETIME* lpLocalFileTime);
++ __declspec(dllimport) void __stdcall GetSystemTime(_SYSTEMTIME* lpSystemTime);
++ __declspec(dllimport) int __stdcall SystemTimeToFileTime(const _SYSTEMTIME* lpSystemTime, _FILETIME* lpFileTime);
++}
++#endif
+ namespace boost {
+
+ namespace date_time {
+@@ -54,10 +64,6 @@
+ boost::uint16_t wMilliseconds;
+ };
+
+- __declspec(dllimport) void __stdcall GetSystemTimeAsFileTime(FILETIME* lpFileTime);
+- __declspec(dllimport) int __stdcall FileTimeToLocalFileTime(const FILETIME* lpFileTime, FILETIME* lpLocalFileTime);
+- __declspec(dllimport) void __stdcall GetSystemTime(SYSTEMTIME* lpSystemTime);
+- __declspec(dllimport) int __stdcall SystemTimeToFileTime(const SYSTEMTIME* lpSystemTime, FILETIME* lpFileTime);
+
+ } // extern "C"
+
+@@ -74,7 +80,7 @@
+ GetSystemTimeAsFileTime(&ft_utc);
+ FileTimeToLocalFileTime(&ft_utc, &ft);
+ #elif defined(BOOST_HAS_GETSYSTEMTIMEASFILETIME)
+- GetSystemTimeAsFileTime(&ft);
++ GetSystemTimeAsFileTime(reinterpret_cast<::_FILETIME *>(&ft));
+ #else
+ system_time st;
+ GetSystemTime(&st);
+--- boost/detail/winapi/timers.hpp
++++ boost/detail/winapi/timers.hpp
+@@ -15,6 +15,11 @@
+ #pragma once
+ #endif
+
++#if !defined(BOOST_USE_WINDOWS_H)
++extern "C" {
++ union _LARGE_INTEGER; // Windows Kits/8.1/Include/um/winnt.h
++}
++#endif
+ namespace boost
+ {
+ namespace detail
+@@ -28,12 +33,12 @@
+ extern "C" {
+ __declspec(dllimport) BOOL_ WINAPI
+ QueryPerformanceCounter(
+- LARGE_INTEGER_ *lpPerformanceCount
++ ::_LARGE_INTEGER *lpPerformanceCount
+ );
+
+ __declspec(dllimport) BOOL_ WINAPI
+ QueryPerformanceFrequency(
+- LARGE_INTEGER_ *lpFrequency
++ ::_LARGE_INTEGER *lpFrequency
+ );
+ }
+ #endif
+--- boost/multi_array/base.hpp
++++ boost/multi_array/base.hpp
+@@ -222,7 +222,7 @@
+ // MSVC 2010 is broken in debug mode: it requires
+ // that an Output Iterator have output_iterator_tag in its iterator_category if
+ // that iterator is not bidirectional_iterator or random_access_iterator.
+-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
++#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600) || (defined __clang__ && BOOST_WORKAROUND(_MSC_VER, >= 1600))
+ struct mutable_iterator_tag
+ : boost::random_access_traversal_tag, std::input_iterator_tag
+ {
+@@ -274,7 +274,7 @@
+ //
+ // iterator support
+ //
+-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
++#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600) || (defined __clang__ && BOOST_WORKAROUND(_MSC_VER, >= 1600))
+ // Deal with VC 2010 output_iterator_tag requirement
+ typedef array_iterator<T,T*,mpl::size_t<NumDims>,reference,
+ mutable_iterator_tag> iterator;
+--- boost/multi_array/iterator.hpp
++++ boost/multi_array/iterator.hpp
+@@ -60,7 +60,7 @@
+ , private
+ value_accessor_generator<T,NumDims>::type
+ {
+- friend class iterator_core_access;
++ friend class boost::iterators::iterator_core_access;
+ typedef detail::multi_array::associated_types<T,NumDims> access_t;
+
+ typedef iterator_facade<
# workdir/UnpackedTarball/boost\boost/smart_ptr/detail/sp_counted_base_clang.hpp(29,1) : error: cannot mangle this C11 atomic type yet
# inline void atomic_increment( atomic_int_least32_t * pw )
@@ -68,7 +167,25 @@
# endif
#endif
-# C:/lo64/core/workdir/UnpackedTarball/boost/libs/thread/src/win32/thread.cpp(1006,36) : error: dllimport cannot be applied to non-inline function definition
+# workdir/UnpackedTarball/boost\boost/smart_ptr/detail/yield_k.hpp(63,29) : error: 'Sleep' redeclared without 'dllimport' attribute: previous 'dll# import' ignored [-Werror,-Winconsistent-dllimport]
+# extern "C" void __stdcall Sleep( unsigned long ms );
+# ^
+# C:/PROGRA~2/WI3CF2~1/8.1/include/um\synchapi.h(908,1) : note: previous declaration is here
+# Sleep(
+# ^
+--- boost/smart_ptr/detail/yield_k.hpp
++++ boost/smart_ptr/detail/yield_k.hpp
+@@ -60,7 +60,7 @@
+ {
+
+ #if !defined( BOOST_USE_WINDOWS_H ) && !BOOST_PLAT_WINDOWS_RUNTIME
+- extern "C" void __stdcall Sleep( unsigned long ms );
++ extern "C" __declspec(dllimport) void __stdcall Sleep( unsigned long ms );
+ #endif
+
+ inline void yield( unsigned k )
+
+# workdir/UnpackedTarball/boost/libs/thread/src/win32/thread.cpp(1006,36) : error: dllimport cannot be applied to non-inline function definition
# BOOST_THREAD_DECL void __cdecl on_process_enter()
# ^
--- boost/thread/detail/config.hpp
@@ -82,3 +199,25 @@
//For compilers supporting auto-tss cleanup
//with Boost.Threads lib, use Boost.Threads lib
# define BOOST_THREAD_USE_LIB
+--- boost/typeof/typeof.hpp
++++ boost/typeof/typeof.hpp
+@@ -49,7 +49,7 @@
+ # endif
+ # endif
+
+-#elif defined(__GNUC__)
++#elif defined(__GNUC__) || defined __clang__
+ # ifndef BOOST_TYPEOF_EMULATION
+ # ifndef BOOST_TYPEOF_NATIVE
+ # define BOOST_TYPEOF_NATIVE
+--- boost/uuid/seed_rng.hpp
++++ boost/uuid/seed_rng.hpp
+@@ -175,7 +175,7 @@
+
+ boost::detail::winapi::LARGE_INTEGER_ ts;
+ ts.QuadPart = 0;
+- boost::detail::winapi::QueryPerformanceCounter( &ts );
++ boost::detail::winapi::QueryPerformanceCounter( reinterpret_cast<::_LARGE_INTEGER *>(&ts) );
+ sha.process_bytes( (unsigned char const*)&ts, sizeof( ts ) );
+
+ std::time_t tm = std::time( 0 );
commit 0c70c7d3df63fe88015c992a088c06c590185fcd
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 12:56:04 2015 +0100
external/boost: Work around -Werror,-Winvalid-constexpr
Change-Id: I819be5efb25632d26fe49a71dbc07fe16e4914b1
diff --git a/external/boost/clang-cl.patch.0 b/external/boost/clang-cl.patch.0
index 0dd44d4..6713dc0 100644
--- a/external/boost/clang-cl.patch.0
+++ b/external/boost/clang-cl.patch.0
@@ -1,3 +1,45 @@
+# clang-cl supports constexpr, so BOOST_CHRONO_LIB_CONSTEXPR expands to
+# "constexpr", but MSVC's std::numeric_limits<>::max() isn't marked as
+# constexpr, so clang-cl issues -Winvalid-constexpr:
+--- boost/chrono/duration.hpp
++++ boost/chrono/duration.hpp
+@@ -348,29 +348,36 @@
+ static BOOST_CHRONO_LIB_CONSTEXPR T lowest() BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW {return (std::numeric_limits<T>::min) ();}
+ };
+
++#if defined _MSC_VER && defined __clang__
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Winvalid-constexpr"
++#endif
+ template <>
+ struct chrono_numeric_limits<float,true> {
+ static BOOST_CHRONO_LIB_CONSTEXPR float lowest() BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW
+ {
+ return -(std::numeric_limits<float>::max) ();
+ }
+ };
+
+ template <>
+ struct chrono_numeric_limits<double,true> {
+ static BOOST_CHRONO_LIB_CONSTEXPR double lowest() BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW
+ {
+ return -(std::numeric_limits<double>::max) ();
+ }
+ };
+
+ template <>
+ struct chrono_numeric_limits<long double,true> {
+ static BOOST_CHRONO_LIB_CONSTEXPR long double lowest() BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW
+ {
+ return -(std::numeric_limits<long double>::max)();
+ }
+ };
++#if defined _MSC_VER && defined __clang__
++#pragma clang diagnostic pop
++#endif
+
+ template <class T>
+ struct numeric_limits : chrono_numeric_limits<typename remove_cv<T>::type>
--- boost/config/compiler/clang.hpp
+++ boost/config/compiler/clang.hpp
@@ -260,9 +260,7 @@
commit 5d7e556e478a5a301fd046c893542dabef36d82c
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 12:48:38 2015 +0100
external/clucene: Use warning-supression pragmas for clang-cl, too
Change-Id: I23da54974f39da5fccb619d6fa68eff38e70f5a5
diff --git a/external/clucene/patches/clucene-warnings.patch b/external/clucene/patches/clucene-warnings.patch
index 981215f..fc3e322 100644
--- a/external/clucene/patches/clucene-warnings.patch
+++ b/external/clucene/patches/clucene-warnings.patch
@@ -4,7 +4,7 @@
#ifndef _lucene_analysis_AnalysisHeader_
#define _lucene_analysis_AnalysisHeader_
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Woverloaded-virtual"
+#endif
@@ -17,7 +17,7 @@
CL_NS_END
+
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic pop
+#endif
#endif
@@ -27,7 +27,7 @@
#ifndef _lucene_search_Searcher_
#define _lucene_search_Searcher_
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Woverloaded-virtual"
+#endif
@@ -40,7 +40,7 @@
CL_NS_END
+
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic pop
+#endif
#endif
@@ -50,7 +50,7 @@
#ifndef _lucene_store_IndexInput_
#define _lucene_store_IndexInput_
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Woverloaded-virtual"
+#endif
@@ -63,7 +63,7 @@
};
CL_NS_END
+
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic pop
+#endif
#endif
@@ -73,7 +73,7 @@
#ifndef _lucene_util_Array_
#define _lucene_util_Array_
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wshadow"
+# pragma GCC diagnostic ignored "-Wunused-parameter"
@@ -87,7 +87,7 @@
CL_NS_END
+
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic pop
+#endif
#endif
@@ -97,7 +97,7 @@
#ifndef _lucene_util_PriorityQueue_
#define _lucene_util_PriorityQueue_
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wshadow"
+#endif
@@ -110,7 +110,7 @@
CL_NS_END
+
-+#if defined(__GNUC__)
++#if defined(__GNUC__) || defined __clang__
+# pragma GCC diagnostic pop
+#endif
#endif
commit d691bf7d6501c89c3178aacc5772ac3fdc8b3c4c
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 12:43:57 2015 +0100
external/glm: Fix check for availability of C++11 static_assert
Change-Id: I0d24bcdfeb0d004607569da089c9f787a868da72
diff --git a/external/glm/clang-cl.patch.0 b/external/glm/clang-cl.patch.0
index 9e3afc9..edbc30b 100644
--- a/external/glm/clang-cl.patch.0
+++ b/external/glm/clang-cl.patch.0
@@ -12,3 +12,21 @@
#endif//(GLM_COMPILER & GLM_COMPILER_VC)
#endif//(GLM_ARCH != GLM_ARCH_PURE)
+
+# Fix check for availability of C++11 static_assert (it apparently should be
+# conditional on GLM_LANG_CXX11 instead of GLM_LANG_CXX0X, but just don't care
+# to try to fix that mess, and use __cplusplus value instead; unconditionally
+# using C++11 static_assert would fail in external/libgltf, which uses
+# external/glm but does not -std=c++11); falling back to BOOST_STATIC_ASSERT
+# would cause unnecessary warnings with clang-cl:
+--- glm/core/setup.hpp
++++ glm/core/setup.hpp
+@@ -628,7 +628,7 @@
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
+ // Static assert
+
+-#if(GLM_LANG == GLM_LANG_CXX0X)
++#if __cplusplus >= 201103L
+ # define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
+ #elif(defined(BOOST_STATIC_ASSERT))
+ # define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)
commit 7ae1c3520a607ee7b542b5eeaae3d1d0a7e6f362
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 12:38:14 2015 +0100
external/glm: work around missing clang-cl #pragma support
Change-Id: I596dc0e2306e7170e65c77a1635f88407272e6b1
diff --git a/external/glm/UnpackedTarball_glm.mk b/external/glm/UnpackedTarball_glm.mk
index f593254..71f1c3c 100644
--- a/external/glm/UnpackedTarball_glm.mk
+++ b/external/glm/UnpackedTarball_glm.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,glm, \
external/glm/Wshadow-patch-fix.patch \
external/glm/Wsign-compare.patch.0 \
external/glm/Wunused-parameter.patch \
+ external/glm/clang-cl.patch.0 \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/glm/clang-cl.patch.0 b/external/glm/clang-cl.patch.0
new file mode 100644
index 0000000..9e3afc9
--- /dev/null
+++ b/external/glm/clang-cl.patch.0
@@ -0,0 +1,14 @@
+# "#pragma intrinsic" not (yet?) handled in the "if (LangOpts.MicrosoftExt)"
+# block in Preprocessor::RegisterBuiltinPragmas in Clang's lib/Lex/Pragma.cpp:
+--- glm/core/func_integer.inl
++++ glm/core/func_integer.inl
+@@ -29,7 +29,9 @@
+ #if(GLM_ARCH != GLM_ARCH_PURE)
+ #if(GLM_COMPILER & GLM_COMPILER_VC)
+ # include <intrin.h>
++#if !defined __clang__
+ # pragma intrinsic(_BitScanReverse)
++#endif
+ #endif//(GLM_COMPILER & GLM_COMPILER_VC)
+ #endif//(GLM_ARCH != GLM_ARCH_PURE)
+
commit abe87fdfe766a9ec0ab9a5b844bc7a400cfe5b2f
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 12:24:41 2015 +0100
external/icu: Don't hardcode cl (so we can build with clang-cl instead)
Change-Id: I8e75b0ab2439592316fc0d871280a438e3ae2f1c
diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
index ad28fce..c48d025 100644
--- a/external/icu/UnpackedTarball_icu.mk
+++ b/external/icu/UnpackedTarball_icu.mk
@@ -24,6 +24,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
external/icu/icu4c-icu11100.patch.1 \
external/icu/icu4c-scriptrun.patch \
external/icu/rtti.patch.0 \
+ external/icu/clang-cl.patch.0 \
$(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.diff) \
$(if $(filter EMSCRIPTEN,$(OS)),external/icu/icu4c-emscripten.patch.1) \
))
diff --git a/external/icu/clang-cl.patch.0 b/external/icu/clang-cl.patch.0
new file mode 100644
index 0000000..cef630c
--- /dev/null
+++ b/external/icu/clang-cl.patch.0
@@ -0,0 +1,13 @@
+--- source/runConfigureICU
++++ source/runConfigureICU
+@@ -259,8 +259,8 @@
+ Cygwin/MSVC)
+ THE_OS="Windows with Cygwin"
+ THE_COMP="Microsoft Visual C++"
+- CC=cl; export CC
+- CXX=cl; export CXX
++ CC=${CC-cl}; export CC
++ CXX=${CXX-cl}; export CXX
+ RELEASE_CFLAGS='-Gy -MD'
+ RELEASE_CXXFLAGS='-Gy -MD'
+ DEBUG_CFLAGS='-Zi -MDd'
commit be0bf120299cff1ec14af1b578d4ea89976cea08
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 11:51:23 2015 +0100
external/liborcus: Silence clang-cl errors about redeclared Windows functions
...like CreateMutexA redeclared in
workdir/UnpackedTarball/boost\boost/thread/win32/thread_primitives.hpp. As such
problematic Boost include files are apparently not included from LO-proper
source files, only from external, it looks easiest to just silence that with
BOOST_USE_WINDOWS_H here.
Change-Id: Ia5ec2325934e6d7fdcf91e6faa2e671aee2091ae
diff --git a/external/liborcus/Library_orcus-parser.mk b/external/liborcus/Library_orcus-parser.mk
index c3b4eec..50c7f72 100644
--- a/external/liborcus/Library_orcus-parser.mk
+++ b/external/liborcus/Library_orcus-parser.mk
@@ -29,6 +29,13 @@ $(eval $(call gb_Library_add_defs,orcus-parser,\
-DBOOST_ALL_NO_LIB \
-D__ORCUS_PSR_BUILDING_DLL \
))
+ifeq ($(OS),WNT)
+ifeq ($(COM_IS_CLANG),TRUE)
+$(eval $(call gb_Library_add_defs,orcus-parser, \
+ -DBOOST_USE_WINDOWS_H \
+))
+endif
+endif
$(eval $(call gb_Library_set_generated_cxx_suffix,orcus-parser,cpp))
commit 3aa5f100eb1402bea7896524f0f04dabdca65af7
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 11:47:24 2015 +0100
external/nss: work around missing clang-cl #pragma support
Change-Id: I068ff0ef2252409689c0c376ec41bdd97b4567cc
diff --git a/external/nss/UnpackedTarball_nss.mk b/external/nss/UnpackedTarball_nss.mk
index 4afd275..38acfed 100644
--- a/external/nss/UnpackedTarball_nss.mk
+++ b/external/nss/UnpackedTarball_nss.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,nss,\
external/nss/nss-3.13.3-build.patch.3 \
external/nss/nss.mingw.patch.3) \
external/nss/ubsan.patch.0 \
+ external/nss/clang-cl.patch.0 \
$(if $(filter IOS,$(OS)), \
external/nss/nss-chromium-nss-static.patch \
external/nss/nss-more-static.patch \
diff --git a/external/nss/clang-cl.patch.0 b/external/nss/clang-cl.patch.0
new file mode 100644
index 0000000..bc90421
--- /dev/null
+++ b/external/nss/clang-cl.patch.0
@@ -0,0 +1,56 @@
+# "#pragma deprecated" and "#pragma intrinsic" not (yet?) handled in the "if
+# (LangOpts.MicrosoftExt)" block in Preprocessor::RegisterBuiltinPragmas in
+# Clang's lib/Lex/Pragma.cpp:
+--- nspr/pr/include/pratom.h
++++ nspr/pr/include/pratom.h
+@@ -83,7 +83,7 @@
+
+ #include <intrin.h>
+
+-#ifdef _MSC_VER
++#if defined _WIN32 && !defined __clang__
+ #pragma intrinsic(_InterlockedIncrement)
+ #pragma intrinsic(_InterlockedDecrement)
+ #pragma intrinsic(_InterlockedExchange)
+--- nspr/pr/include/prbit.h
++++ nspr/pr/include/prbit.h
+@@ -14,7 +14,7 @@
+ ** functions.
+ */
+ #if defined(_WIN32) && (_MSC_VER >= 1300) && \
+- (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_ARM))
++ (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_ARM)) && !defined __clang__
+ # include <intrin.h>
+ # pragma intrinsic(_BitScanForward,_BitScanReverse)
+ __forceinline static int __prBitScanForward32(unsigned int val)
+@@ -136,7 +136,7 @@
+ */
+
+ #if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || \
+- defined(_M_X64) || defined(_M_ARM))
++ defined(_M_X64) || defined(_M_ARM)) && !defined __clang__
+ #include <stdlib.h>
+ #pragma intrinsic(_rotl, _rotr)
+ #define PR_ROTATE_LEFT32(a, bits) _rotl(a, bits)
+--- nss/lib/certdb/certdb.h
++++ nss/lib/certdb/certdb.h
+@@ -31,7 +31,7 @@
+ #endif
+ #define CERTDB_VALID_PEER ((__CERTDB_VALID_PEER) CERTDB_TERMINAL_RECORD)
+ #else
+-#ifdef _WIN32
++#if defined _WIN32 && !defined __clang__
+ #pragma deprecated(CERTDB_VALID_PEER)
+ #endif
+ #define CERTDB_VALID_PEER CERTDB_TERMINAL_RECORD
+--- nss/lib/util/pkcs11n.h
++++ nss/lib/util/pkcs11n.h
+@@ -390,7 +390,7 @@
+ /* keep the old value for compatibility reasons*/
+ #define CKT_NSS_MUST_VERIFY ((__CKT_NSS_MUST_VERIFY)(CKT_NSS +4))
+ #else
+-#ifdef _WIN32
++#if defined _WIN32 && !defined __clang__
+ /* This magic gets the windows compiler to give us a deprecation
+ * warning */
+ #pragma deprecated(CKT_NSS_UNTRUSTED, CKT_NSS_MUST_VERIFY, CKT_NSS_VALID)
commit 39a7cf0303a4a633393733d95581e24669d15155
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 11:41:36 2015 +0100
clang-cl needs an explicit -I to find systools/win32/snprintf.h
...included via external/poppler/poppler-snprintf.patch.1
Change-Id: Ibe20452e7da4995ca33c97dd99dc441060e73894
diff --git a/external/poppler/ExternalProject_poppler.mk b/external/poppler/ExternalProject_poppler.mk
index 103f609..806a041 100644
--- a/external/poppler/ExternalProject_poppler.mk
+++ b/external/poppler/ExternalProject_poppler.mk
@@ -17,7 +17,7 @@ $(eval $(call gb_ExternalProject_register_targets,poppler,\
$(call gb_ExternalProject_get_state_target,poppler,build) :
$(call gb_ExternalProject_run,build,\
- $(if $(filter TRUE,$(DISABLE_DYNLOADING)),CFLAGS="$(CFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_COMPILEROPTFLAGS)" CXXFLAGS="$(CXXFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_VISIBILITY_FLAGS_CXX) $(gb_COMPILEROPTFLAGS)") \
+ $(if $(filter TRUE,$(DISABLE_DYNLOADING)),CFLAGS="$(CFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_COMPILEROPTFLAGS)" CXXFLAGS="$(CXXFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_VISIBILITY_FLAGS_CXX) $(gb_COMPILEROPTFLAGS)",$(if $(filter MSC-120,$(COM)-$(VCVER)),CXXFLAGS="$(CXXFLAGS) -I$(SRCDIR)/include")) \
MAKE=$(MAKE) ./configure \
--with-pic \
--enable-static \
commit 2291cadabfe2ddfeddabce7f0ae49a3e9e7ca20d
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 11:39:04 2015 +0100
For some odd reason, clang-cl.exe doesn't like being called by CreateProcess
...with the executable specified in the first arg, instead of as part of the
second arg (i.e., the command line)
Change-Id: Ie6e232f6880b5bfbb91a52ee5398b91a0ccddc4d
diff --git a/solenv/gcc-wrappers/wrapper.cxx b/solenv/gcc-wrappers/wrapper.cxx
index 60e6159..0ed323c 100644
--- a/solenv/gcc-wrappers/wrapper.cxx
+++ b/solenv/gcc-wrappers/wrapper.cxx
@@ -194,18 +194,15 @@ int startprocess(string command, string args) {
command=command.substr(0,pos+strlen("ccache"))+".exe";
}
- if (args[0] != ' ')
- {
- args.insert(0, " "); // lpCommandLine *must* start with space!
- }
+ auto cmdline = "\"" + command + "\" " + args;
//cerr << "CMD= " << command << " " << args << endl;
// Commandline may be modified by CreateProcess
- char* cmdline=_strdup(args.c_str());
+ char* cmdlineBuf=_strdup(cmdline.c_str());
- if(!CreateProcess(command.c_str(), // Process Name
- cmdline, // Command Line
+ if(!CreateProcess(nullptr, // Process Name
+ cmdlineBuf, // Command Line
NULL, // Process Handle not Inheritable
NULL, // Thread Handle not Inheritable
TRUE, // Handles are Inherited
commit 895061b809e443e24896b1c851a7d4dafb045a68
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 11:35:40 2015 +0100
Filter out -fPIC too
...which happens to be passed in when building external/poppler with clang-cl
Change-Id: I2c17bec316081a0cdc789a84bb1447acf5e893c0
diff --git a/solenv/gcc-wrappers/wrapper.cxx b/solenv/gcc-wrappers/wrapper.cxx
index 0c60934..60e6159 100644
--- a/solenv/gcc-wrappers/wrapper.cxx
+++ b/solenv/gcc-wrappers/wrapper.cxx
@@ -147,7 +147,7 @@ string processccargs(vector<string> rawargs) {
// "foo.def" by itself
linkargs.append(" " + *i);
}
- else if(!(*i).compare(0,12,"-fvisibility")) {
+ else if(!(*i).compare(0,12,"-fvisibility") || *i == "-fPIC") {
//TODO: drop other gcc-specific options
}
else if(!(*i).compare(0,4,"-Wl,")) {
commit f95f1df02e76d44347cba47fb454c32dbd8fb501
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 11:24:13 2015 +0100
clang-cl needs -Wno-missing-braces
...as in com_GCC_defs.mk
Change-Id: Ic086a6f08945698cd35a312f98491cba403b9582
diff --git a/solenv/gbuild/platform/com_MSC_defs.mk b/solenv/gbuild/platform/com_MSC_defs.mk
index 6ff3880..88d8695 100644
--- a/solenv/gbuild/platform/com_MSC_defs.mk
+++ b/solenv/gbuild/platform/com_MSC_defs.mk
@@ -232,6 +232,12 @@ gb_CFLAGS += \
endif
+ifeq ($(COM_IS_CLANG),TRUE)
+gb_CXXFLAGS += \
+ -Wno-missing-braces \
+
+endif
+
# rc.exe does not support -nologo in 6.1.6723.1 that is in the Windows SDK 6.0A
gb_RCFLAGS += -nologo
commit b3e1b52252e7b1a807504d9bbdf88a58d6325d0b
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 11:06:05 2015 +0100
Adapt new/delete exception specs for MSVC
...where plain operator new/delete are reportedly predefined (cf.
<www.geoffchappell.com/studies/msvc/language/predefined/index.html>) without any
exception specs, then redeclared in C:/PROGRA~2/MICROS~1.0/VC/include/new with
exception specs that are ignored by MSVC (so it presumably doesn't even complain
about the mismatching redeclarations, just effectively ignores them); and array
operator new/delete are declared in C:/PROGRA~2/MICROS~1.0/VC/include/crtdbg.h
without any exception specs. clang-cl would warn about those inconsistencies.
Change-Id: I4dd15e4cfcedc3de5e8617b43769b5371cafa71f
diff --git a/sal/cpprt/operators_new_delete.cxx b/sal/cpprt/operators_new_delete.cxx
index 13491bd..8cf69ff 100644
--- a/sal/cpprt/operators_new_delete.cxx
+++ b/sal/cpprt/operators_new_delete.cxx
@@ -145,7 +145,10 @@ static void deallocate (void * p, AllocatorTraits const & rTraits)
// T * p = new T; delete p;
-void* SAL_CALL operator new (std::size_t n) throw (std::bad_alloc)
+void* SAL_CALL operator new (std::size_t n)
+#if !defined _MSC_VER
+ throw (std::bad_alloc)
+#endif
{
return allocate (n, ScalarTraits());
}
@@ -188,7 +191,10 @@ void* SAL_CALL operator new[] (std::size_t n) throw (std::bad_alloc)
return allocate (n, VectorTraits());
}
-void SAL_CALL operator delete[] (void * p) throw ()
+void SAL_CALL operator delete[] (void * p)
+#if !defined _MSC_VER
+ throw ()
+#endif
{
deallocate (p, VectorTraits());
}
commit 803bff584c1c6861e33a91f5075ba68a089a8c8e
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 10:40:45 2015 +0100
-Werror,-Wint-to-pointer-cast
Appart from the by-design type-punned use in CreateWindowEx, m_uID is (only)
used in a call to MAKEWPARAM (to create a WPARAM to pass into a SendMessage
call), so the most realistic type to use seems to be WORD. And
CHatchWindow::Init is only called with a value of 2000 (from docholder.cxx),
anyway.
Change-Id: I4b6554d1ca9bb3926378c9e25a5473609f5951c5
diff --git a/embedserv/source/embed/syswinwrapper.cxx b/embedserv/source/embed/syswinwrapper.cxx
index 303f49a..a71b9ef 100644
--- a/embedserv/source/embed/syswinwrapper.cxx
+++ b/embedserv/source/embed/syswinwrapper.cxx
@@ -186,7 +186,7 @@ CHatchWin::~CHatchWin()
*
* Parameters:
* hWndParent HWND of the parent of this window
- * uID UINT identifier for this window (send in
+ * uID WORD identifier for this window (send in
* notifications to associate window).
* hWndAssoc HWND of the initial associate.
*
@@ -194,14 +194,14 @@ CHatchWin::~CHatchWin()
* BOOL TRUE if the function succeeded, FALSE otherwise.
*/
-BOOL CHatchWin::Init(HWND hWndParent, UINT uID, HWND hWndAssoc)
+BOOL CHatchWin::Init(HWND hWndParent, WORD uID, HWND hWndAssoc)
{
m_hWndParent = hWndParent;
m_hWnd=CreateWindowEx(
WS_EX_NOPARENTNOTIFY, SZCLASSHATCHWIN
, SZCLASSHATCHWIN, WS_CHILD | WS_CLIPSIBLINGS
- | WS_CLIPCHILDREN, 0, 0, 100, 100, hWndParent, (HMENU)uID
- , m_hInst, this);
+ | WS_CLIPCHILDREN, 0, 0, 100, 100, hWndParent
+ , reinterpret_cast<HMENU>(UINT_PTR(uID)), m_hInst, this);
m_uID=uID;
m_hWndAssociate=hWndAssoc;
diff --git a/embedserv/source/inc/syswinwrapper.hxx b/embedserv/source/inc/syswinwrapper.hxx
index 422dff9..9814248 100644
--- a/embedserv/source/inc/syswinwrapper.hxx
+++ b/embedserv/source/inc/syswinwrapper.hxx
@@ -146,7 +146,7 @@ protected:
int m_dBorder;
int m_dBorderOrg;
- UINT m_uID;
+ WORD m_uID;
HWND m_hWndParent;
HWND m_hWndKid;
HWND m_hWndAssociate;
@@ -157,7 +157,7 @@ protected:
CHatchWin(HINSTANCE,const DocumentHolder*);
~CHatchWin();
- BOOL Init(HWND, UINT, HWND);
+ BOOL Init(HWND, WORD, HWND);
HWND HwndAssociateSet(HWND);
HWND HwndAssociateGet();
commit 2195299ab60d71a72c37690f88575f71b3d568ff
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 10:17:35 2015 +0100
Where to find ATL files doesn't depend on --enable-activex
...but, according to the 'Doesn't exist for VSE' comment, apparently rather on the
compiler version installed
Change-Id: I49a87fa55facee8ee66e2b44d7090d06fb104b89
diff --git a/configure.ac b/configure.ac
index d180f82..b97442f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12809,12 +12809,12 @@ AC_MSG_NOTICE([setting up the build environment variables...])
AC_SUBST(COMPATH)
if test "$build_os" = "cygwin"; then
- if test "$DISABLE_ACTIVEX" = "TRUE"; then
- ATL_LIB="$WINDOWS_SDK_HOME/lib" # Doesn't exist for VSE
- ATL_INCLUDE="$WINDOWS_SDK_HOME/include/atl"
- else
+ if test -d "$COMPATH/atlmfc/lib"; then
ATL_LIB="$COMPATH/atlmfc/lib"
ATL_INCLUDE="$COMPATH/atlmfc/include"
+ else
+ ATL_LIB="$WINDOWS_SDK_HOME/lib" # Doesn't exist for VSE
+ ATL_INCLUDE="$WINDOWS_SDK_HOME/include/atl"
fi
if test "$BITNESS_OVERRIDE" = 64; then
ATL_LIB="$ATL_LIB/amd64"
commit c4688ad97e4b5f1c0e7fd94937013ddc1c868139
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 10:08:32 2015 +0100
Allow --disable-pch for clang-cl
...which doesn't support the cl PCH cmd line args yet
Change-Id: I0a5a4d6c82138992c6e40b5958a41a7fa0be88ac
diff --git a/configure.ac b/configure.ac
index 75323dc..d180f82 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4938,11 +4938,11 @@ dnl enable pch by default on windows
dnl enable it explicitely otherwise
AC_MSG_CHECKING([whether to enable pch feature])
ENABLE_PCH=""
-if test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then
- ENABLE_PCH="TRUE"
- AC_MSG_RESULT([yes])
-elif test "$enable_pch" != "no"; then
- if test -n "$enable_pch" && test "$GCC" = "yes"; then
+if test "$enable_pch" != "no"; then
+ if test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then
+ ENABLE_PCH="TRUE"
+ AC_MSG_RESULT([yes])
+ elif test -n "$enable_pch" && test "$GCC" = "yes"; then
ENABLE_PCH="TRUE"
AC_MSG_RESULT([yes])
elif test -n "$enable_pch"; then
commit 871b5abf1198c6b385eef844fa0c1192ccf42592
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Dec 1 09:58:00 2015 +0100
Work around missing __CxxDetectRethrow in clang-cl
Change-Id: Ia42d39f04b22986d3fd873655b48dc31d834caee
diff --git a/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx b/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
index 120ac49..7d1c1fa 100644
--- a/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
+++ b/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
@@ -252,6 +252,12 @@ void
#include "mscx.hxx"
#include "bridges/cpp_uno/shared/except.hxx"
+//TOOD: Work around missing __CxxDetectRethrow in clang-cl for now (predefined
+// in cl, <www.geoffchappell.com/studies/msvc/language/predefined/index.html>):
+#if defined __clang__
+extern "C" int __cdecl __CxxDetectRethrow(void *);
+#endif
+
#pragma pack(push, 8)
using namespace ::com::sun::star::uno;
commit cb8cd417de869517b4c5a30a201602e76e94aae4
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Mon Nov 30 14:21:43 2015 +0100
Be explicit about missing env vars
Change-Id: I1023779749c3ce114d637a39a72bc9038324f01d
diff --git a/solenv/gcc-wrappers/wrapper.cxx b/solenv/gcc-wrappers/wrapper.cxx
index e68603c..0c60934 100644
--- a/solenv/gcc-wrappers/wrapper.cxx
+++ b/solenv/gcc-wrappers/wrapper.cxx
@@ -37,6 +37,10 @@ void setupccenv() {
char* libbuf;
size_t liblen;
_dupenv_s(&libbuf,&liblen,"ILIB");
+ if (libbuf == nullptr) {
+ std::cerr << "No environment variable ILIB" << std::endl;
+ std::exit(EXIT_FAILURE);
+ }
libpath.append(libbuf);
free(libbuf);
if(_putenv(libpath.c_str())<0) {
@@ -49,6 +53,10 @@ void setupccenv() {
char* incbuf;
size_t inclen;
_dupenv_s(&incbuf,&inclen,"SOLARINC");
+ if (incbuf == nullptr) {
+ std::cerr << "No environment variable SOLARINC" << std::endl;
+ std::exit(EXIT_FAILURE);
+ }
string inctmp(incbuf);
free(incbuf);
commit ac5d4693ce4ec3fc1b10c83c27d09ca61de8188f
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Mon Nov 30 14:18:47 2015 +0100
Fix quoting
Change-Id: I4a4a7c4a1596837c2f221d856228d7d26482ede3
diff --git a/sal/Library_sal.mk b/sal/Library_sal.mk
index 79a0e2a..ee25cd2 100644
--- a/sal/Library_sal.mk
+++ b/sal/Library_sal.mk
@@ -28,8 +28,8 @@ $(eval $(call gb_Library_add_defs,sal,\
) \
$(LFS_CFLAGS) \
-DSAL_DLLIMPLEMENTATION \
- -DRTL_OS="\"$(RTL_OS)"\" \
- -DRTL_ARCH="\"$(RTL_ARCH)"\" \
+ -DRTL_OS="\"$(RTL_OS)\"" \
+ -DRTL_ARCH="\"$(RTL_ARCH)\"" \
-DSRCDIR="\"$(SRCDIR)\"" \
))
commit 72b17442010d512f6cf96a871409b1777ed08748
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Mon Nov 30 14:14:52 2015 +0100
Silence clang-cl -Winvalid-offsetof in ATL-macro expansion
Change-Id: I2bfa87abd111faf414d2603025d3613f7e0ae104
diff --git a/extensions/source/activex/SOActiveX.h b/extensions/source/activex/SOActiveX.h
index 515b0ee..bacee818 100644
--- a/extensions/source/activex/SOActiveX.h
+++ b/extensions/source/activex/SOActiveX.h
@@ -124,6 +124,12 @@ BEGIN_COM_MAP(CSOActiveX)
COM_INTERFACE_ENTRY(IObjectSafety)
END_COM_MAP()
+#if defined __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Winvalid-offsetof"
+ // offset of on non-standard-layout type '_PropMapClass' (aka 'CSOActiveX'),
+ // expanded from macro 'PROP_DATA_ENTRY'
+#endif
BEGIN_PROP_MAP(CSOActiveX)
PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
@@ -131,6 +137,9 @@ BEGIN_PROP_MAP(CSOActiveX)
// PROP_ENTRY("Property Description", dispid, clsid)
// PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()
+#if defined __clang__
+#pragma clang diagnostic pop
+#endif
BEGIN_CONNECTION_POINT_MAP(CSOActiveX)
END_CONNECTION_POINT_MAP()
commit 5a4791a8f50192935caa4e7b2032f9cd78b307e5
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Mon Nov 30 14:11:45 2015 +0100
Silence clang-cl warnings in ATL headers
Change-Id: I85df6250d4cae3dd6bd516f2086af7efcf2cd562
diff --git a/extensions/source/activex/StdAfx2.h b/extensions/source/activex/StdAfx2.h
index 484edfc..8d929a9 100644
--- a/extensions/source/activex/StdAfx2.h
+++ b/extensions/source/activex/StdAfx2.h
@@ -40,6 +40,19 @@
// expression before comma has no effect; expected expression with side-effect
#pragma warning (disable:4555)
// expression has no effect; expected expression with side-effect
+#if defined __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wall"
+#pragma clang diagnostic ignored "-Wattributes"
+#pragma clang diagnostic ignored "-Wdelete-incomplete"
+#pragma clang diagnostic ignored "-Wdynamic-class-memaccess"
+#pragma clang diagnostic ignored "-Wint-to-pointer-cast"
+#pragma clang diagnostic ignored "-Winvalid-noreturn"
+#pragma clang diagnostic ignored "-Wmicrosoft"
+#pragma clang diagnostic ignored "-Wnon-pod-varargs"
+#pragma clang diagnostic ignored "-Wsequence-point"
+#pragma clang diagnostic ignored "-Wtypename-missing"
+#endif
#define min(a, b) (((a) < (b)) ? (a) : (b))
#include <atlbase.h>
@@ -50,6 +63,9 @@ extern CComModule _Module;
#include <atlcom.h>
#include <atlctl.h>
+#if defined __clang__
+#pragma clang diagnostic pop
+#endif
#pragma warning (pop)
//{{AFX_INSERT_LOCATION}}
commit 5ccdc4187bd679c41d89b920847fe0c04d81bdb8
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Mon Nov 30 14:10:12 2015 +0100
Silence clang-cl -Wextra-tokens in midl-generated code
Change-Id: I30d09560bf948c2659f479ef55b58a2007fcbc1b
diff --git a/extensions/source/activex/so_activex.cxx b/extensions/source/activex/so_activex.cxx
index 2a73949..51ff332 100644
--- a/extensions/source/activex/so_activex.cxx
+++ b/extensions/source/activex/so_activex.cxx
@@ -29,7 +29,16 @@
#include <initguid.h>
#include "so_activex.h"
+#if defined __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wextra-tokens"
+ // "#endif !_MIDL_USE_GUIDDEF_" in midl-generated code
+#endif
#include "so_activex_i.c"
+#if defined __clang__
+#pragma clang diagnostic pop
+#endif
+
#include "SOActiveX.h"
#include <comphelper\documentconstants.hxx>
commit c59646dce5d4469c0b83d5c32510ae4e431b7dc3
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Mon Nov 30 14:07:10 2015 +0100
Silence clang-cl warnings in ATL headers
Change-Id: Id94279d0086bc29569783f4e0b5d975be162e823
diff --git a/embedserv/source/inc/embeddocaccess.hxx b/embedserv/source/inc/embeddocaccess.hxx
index 01e87e9..712167b 100644
--- a/embedserv/source/inc/embeddocaccess.hxx
+++ b/embedserv/source/inc/embeddocaccess.hxx
@@ -30,7 +30,15 @@
#include <oleidl.h>
#ifndef __MINGW32__
#pragma warning(disable : 4265)
+#if defined __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wall"
+#pragma clang diagnostic ignored "-Wmicrosoft"
+#endif
#include <atldbcli.h>
+#if defined __clang__
+#pragma clang diagnostic pop
+#endif
#endif
#include <cppuhelper/weak.hxx>
diff --git a/embedserv/source/inc/stdafx.h b/embedserv/source/inc/stdafx.h
index 8ecf254..7b147a8 100644
--- a/embedserv/source/inc/stdafx.h
+++ b/embedserv/source/inc/stdafx.h
@@ -17,6 +17,19 @@
#pragma warning(push)
#pragma warning(push, 1)
#pragma warning(disable: 4548)
+#if defined __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wall"
+#pragma clang diagnostic ignored "-Wattributes"
+#pragma clang diagnostic ignored "-Wdelete-incomplete"
+#pragma clang diagnostic ignored "-Wdynamic-class-memaccess"
+#pragma clang diagnostic ignored "-Wint-to-pointer-cast"
+#pragma clang diagnostic ignored "-Winvalid-noreturn"
+#pragma clang diagnostic ignored "-Wmicrosoft"
+#pragma clang diagnostic ignored "-Wnon-pod-varargs"
+#pragma clang diagnostic ignored "-Wsequence-point"
+#pragma clang diagnostic ignored "-Wtypename-missing"
+#endif
#endif
#include <atlbase.h>
//You may derive a class from CComModule and use it if you want to override
@@ -34,6 +47,9 @@ using ::std::max;
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#ifdef _MSC_VER
+#if defined __clang__
+#pragma clang diagnostic pop
+#endif
#pragma warning(pop)
#pragma warning(pop)
#endif
commit f6bb9d16965cd672957a87e780f88819bc01d567
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Mon Nov 30 14:05:25 2015 +0100
Check clang-cl for HAVE_GCC_ATTRIBUTE_WARN_UNUSED, too
Change-Id: I820ea4b3efc51a0464470a8a53d022602d635c81
diff --git a/configure.ac b/configure.ac
index 8593722..75323dc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6051,19 +6051,6 @@ if test "$GCC" = "yes"; then
], [AC_MSG_RESULT([no])])
AC_LANG_POP([C++])
- AC_MSG_CHECKING([whether $CXX supports __attribute__((warn_unused))])
- AC_LANG_PUSH([C++])
- save_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS -Werror -Wunknown-pragmas"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
- struct __attribute__((warn_unused)) dummy {};
- ])], [
- AC_DEFINE([HAVE_GCC_ATTRIBUTE_WARN_UNUSED],[1])
- AC_MSG_RESULT([yes])
- ], [AC_MSG_RESULT([no])])
- CXXFLAGS=$save_CXXFLAGS
- AC_LANG_POP([C++])
-
AC_MSG_CHECKING([whether STL uses __attribute__((warn_unused))])
AC_LANG_PUSH([C++])
save_CXXFLAGS=$CXXFLAGS
@@ -6080,6 +6067,19 @@ if test "$GCC" = "yes"; then
AC_LANG_POP([C++])
fi
+AC_MSG_CHECKING([whether $CXX supports __attribute__((warn_unused))])
+AC_LANG_PUSH([C++])
+save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="$CXXFLAGS -Werror -Wunknown-pragmas"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ struct __attribute__((warn_unused)) dummy {};
+ ])], [
+ AC_DEFINE([HAVE_GCC_ATTRIBUTE_WARN_UNUSED],[1])
+ AC_MSG_RESULT([yes])
+ ], [AC_MSG_RESULT([no])])
+CXXFLAGS=$save_CXXFLAGS
+AC_LANG_POP([C++])
+
AC_SUBST(HAVE_GCC_AVX)
AC_SUBST(HAVE_GCC_STACK_PROTECTOR_STRONG)
AC_SUBST(HAVE_GCC_BUILTIN_ATOMIC)
commit a846982f9e6c780ba61525fd8dfc30e429ff52ae
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Sat Nov 28 13:19:15 2015 +0100
-Werror,-Wunused-private-field
Change-Id: Icf15313f5bcacbe9c7efa0b4161929dbb3e39c1e
diff --git a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
index cb98071..7194bc9 100644
--- a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
+++ b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
@@ -149,7 +149,6 @@ VistaFilePickerImpl::VistaFilePickerImpl()
, m_iDialogSave ()
, m_hLastResult ()
, m_lFilters ()
- , m_lLastFiles ()
, m_iEventHandler(new VistaFilePickerEventHandler(this))
, m_bInExecute (sal_False)
, m_bWasExecuted (sal_False)
diff --git a/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx b/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx
index 47e1be6..64fbd5b 100644
--- a/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx
+++ b/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx
@@ -45,9 +45,6 @@
#include "IVistaFilePickerInternalNotify.hxx"
#include "../misc/resourceprovider.hxx"
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <comphelper/sequenceashashmap.hxx>
#include <cppuhelper/interfacecontainer.h>
#include <cppuhelper/basemutex.hxx>
#include <osl/thread.hxx>
@@ -302,15 +299,6 @@ class VistaFilePickerImpl : private ::cppu::BaseMutex
CFilterContainer m_lFilters;
- /** cache last selected list of files
- * Because those list must be retrieved directly after closing the dialog
- * (and only in case it was finished successfully) we cache it internally.
- * Because the outside provided UNO API decouple showing the dialog
- * and asking for results .-)
- */
- css::uno::Sequence< OUString > m_lLastFiles;
-
-
/** help us to handle dialog events and provide them to interested office
* listener.
*/
More information about the Libreoffice-commits
mailing list