Commit Graph

101 Commits

Author SHA1 Message Date
Peter Collingbourne
3498a1ac52 Use _CPPUNWIND instead of _HAS_EXCEPTIONS with MSVC.
_HAS_EXCEPTIONS is specific to the MSVC STL and defining it to 0 causes
problems with libc++, so libc++ users may leave it undefined. This can
cause GTEST_HAS_EXCEPTIONS to be defined incorrectly if the user has
disabled exceptions via the compiler, which can lead to build errors.

_CPPUNWIND is a builtin macro provided by the compiler so it should
work with both STLs.
2018-01-25 14:15:43 -08:00
Gennadiy Civil
e29805aa5d upstream cl 182543808 2018-01-24 13:04:36 -05:00
Gennadiy Civil
ad0146bfe2
Merge branch 'master' into win-libcxx 2018-01-23 12:32:44 -05:00
Gennadiy Civil
f1c87ad9f5 merges, cl/155419551 and other 2018-01-22 15:20:19 -05:00
Gennadiy Civil
1489dc8daa
Merge branch 'master' into support_xboxone 2018-01-18 17:42:34 -05:00
Gennadiy Civil
20b53ad786
Merge branch 'master' into win-libcxx 2018-01-18 17:41:36 -05:00
Peter Collingbourne
ba99a04be2 Check whether _MSC_VER is defined when detecting presence of cxxabi.h under libc++.
If _MSC_VER is defined, it means that we are using the Microsoft
ABI, so cxxabi.h (which is associated with the Itanium ABI) will not
be available.
2018-01-17 20:29:10 -08:00
Fedor Trushkin
9c82e7745c Expose ScopedTrace utility in public interface 2018-01-17 16:41:59 +01:00
Gennadiy Civil
08b323f717 Reverting some changes, need to make the merge compile 2018-01-15 18:16:11 -05:00
Gennadiy Civil
9195571c69 Reverting some changes, need to make the merge compile 2018-01-15 17:39:33 -05:00
Gennadiy Civil
6d04de7419 Reverting some changes, need to make the merge compile 2018-01-15 17:36:45 -05:00
Gennadiy Civil
b9e297838d Reverting some changes, need to make the merge compile 2018-01-15 17:34:46 -05:00
Gennadiy Civil
d629744ec0 More code merges 2018-01-15 16:23:23 -05:00
Gennadiy Civil
da1f7fe1e7 Code merging 2018-01-15 16:06:32 -05:00
gpetit
33d73d42b4 Added support for WINAPI_PARTITION_TV_TITLE which is defined on XboxOne 2018-01-12 10:20:26 -05:00
Gennadiy Civil
93b77987f5 continue upstream/merge, etc 2018-01-11 17:36:34 -05:00
Gennadiy Civil
6914ae2394 Upstream cl 103120214 2018-01-11 11:31:23 -05:00
Gennadiy Civil
1d757db65c More merge, cleanup 2018-01-10 16:49:20 -05:00
Gennadiy Civil
481fe9446a More merge, cleanup 2018-01-10 16:45:59 -05:00
Gennadiy Civil
6a26e47cfc Code merge, upstreaming accumulated changes, cleanup 2018-01-10 14:42:29 -05:00
Gennadiy Civil
62dbaa2947 revert 2018-01-10 14:00:52 -05:00
Gennadiy Civil
d630a8bdac code merges, cleanup 2018-01-10 13:58:00 -05:00
Gennadiy Civil
d237297ceb code merge, cleanups 2018-01-09 22:46:17 -05:00
Gennadiy Civil
2ad5661db2 Upstream of cl 129104714 2018-01-09 16:41:15 -05:00
Gennadiy Civil
5eecadf67a Revert one file 2018-01-09 15:46:44 -05:00
Gennadiy Civil
9fce984a67 wip, cleanups/merge 2018-01-09 14:48:06 -05:00
Gennadiy Civil
258fd6e168 cleanup, merge 2018-01-09 13:59:27 -05:00
Gennadiy Civil
6b4967a23a
Merge branch 'master' into missing-declarations 2018-01-04 22:01:38 -05:00
David Benjamin
1acf8c752e Also define GTEST_ATTRIBUTE_PRINTF_ in clang-cl.
clang-cl is clang for Windows running in MSVC mode. Chromium uses it for
Windows builds. clang-cl is weird in that it defines __clang__ and
_MSC_VER, but *NOT* __GNUC__. This is vaguely analogous to how normal
clang defines __clang__ (what it is) and __GNUC__ (what it is compatible
with).

However, clang-cl still implements most GCC extensions, being clang.
Notably, the way to control -Wformat-literal is still with
__attribute__((__format__)). For better error-checking and strict
-Wformatl-literal compatibility (see
53c478d639), define
GTEST_ATTRIBUTE_PRINTF_ in clang-cl too.
2018-01-03 14:55:52 -05:00
David Benjamin
b3d9be5c1d Pass the -Wmissing-declarations warning.
This makes it easier to use GTest in projects that build with the
-Wmissing-declarations warning. This fixes the warning in headers and
source files, though not GTest's own tests as it is rather noisy there.
2018-01-03 14:50:22 -05:00
Gennadiy Civil
ba6ecedede
Merge pull request #1374 from davidben/tuple-msvc
Fix testing::Combine on MSVC 2017.
2018-01-03 14:11:38 -05:00
David Benjamin
90244a6aef Fix testing::Combine on MSVC 2017.
On platforms with std::tuple and not std::tr1::tuple, GTEST_HAS_COMBINE
gets turned off when it works fine (due to GTEST_TUPLE_NAMESPACE_).
Elsewhere in the project, several GTEST_HAS_TR1_TUPLE checks
additionally check GTEST_HAS_STD_TUPLE_, so use that formulation.

(The ones that don't are specific to std::tr1::tuple and are followed by
an identical GTEST_HAS_STD_TUPLE_ version underneath it.)

In particular, this fixes testing::Combine on MSVC 2017, which regressed
here:
https://github.com/google/googletest/pull/1348#issuecomment-353879010
2018-01-02 12:57:49 -05:00
Gennadiy Civil
fa6730103e
Merge branch 'master' into uintptr 2018-01-02 10:54:26 -05:00
David Benjamin
bcd35523cd Avoid warning C4619 in MSVC 2017.
C4800 has since been removed in MSVC 2017, so trying to silence it
throws warning C4619 when enabled.
2017-12-25 11:02:02 -05:00
Gregory Pakosz
7990f56637 Re-enable MSVC++ C4389 warning in CmdHelperEq()
C4389 was inhibited in commit 4b83461 making behavior inconsistent with
other compilers.
2017-12-21 16:35:38 +01:00
Gennadiy Civil
a7fceb4a98
Update gtest-param-test.h.pump 2017-12-19 10:58:37 -05:00
Gennadiy Civil
8a48f0ed4e
Update gtest-param-test.h.pump 2017-12-19 10:55:49 -05:00
Gennadiy Civil
55fca1937d
Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS 2017-12-09 09:41:02 -05:00
Wojciech Mamrak
57bb0bbbf8
Remove C4996 warning in VS2017 2017-12-07 18:20:25 +01:00
Gennadiy Civil
49eb76df47
Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS 2017-11-07 10:32:23 -08:00
m-gupta
060783b7d2 Merge branch 'master' into gtestapifix 2017-10-25 10:24:56 -07:00
Arkadiy Shapkin
77380cddf7 Enable C++11 features for VS2015 and VS2017 2017-10-25 03:24:49 +03:00
Manoj Gupta
1beff241c3 googletest: Add GTEST_API_ attribute to ThreadLocal class.
ThreadLocal class needs to be have default visibility.
Root cause is gtest uses typeinfo for the ThreadLocal class.
The problem manifests When gtest/gmock are built as a shared library
with libc++. When a class is used in typeinfo, it must have default
visibility.

There is an explanation about typeinfo and visibility here:
https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html

When libc++ is used with gtest in shared library mode, any tests
that are compiled with -fvisibility=hidden and exercise the
macro EXPECT_CALL, it results in an abort like:
[ FATAL ] /usr/include/gtest/internal/gtest-port.h:1394::
Condition typeid(*base) == typeid(Derived) failed.
This is because the typeinfo for ThreadLocal class is not visible.
Therefore, linker failed to match it to the shared library symbol, creating a
new symbol instead.

This fixes https://github.com/google/googletest/issues/1207.
2017-10-20 14:41:06 -07:00
Herbert Thielen
ceee80c383 Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS 2017-10-04 21:03:47 +02:00
Jonathan Wakely
b70cf1a663 Use gender-neutral pronouns in comments and docs 2017-09-27 13:31:13 +01:00
Herbert Thielen
98024ad202 Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS 2017-09-24 10:01:52 +02:00
Gennadiy Civil
89f45180e0 Merge branch 'master' into master 2017-09-23 16:51:27 -04:00
Gennadiy Civil
d30a37e743 Revert "Allow macros inside of parametrized test names." 2017-09-21 10:54:14 -04:00
Gennadiy Civil
ff6796877f Merge pull request #1245 from sheepmaster/2017_09_04_parametrized
Allow macros inside of parametrized test names.
2017-09-21 10:52:47 -04:00
stkhapugin@chromium.org
cf512a099c Swap reinterpret_cast for static_cast
Swap reinterpret_cast for static_cast
2017-09-19 12:44:52 +02:00