This change adds an explicit invocation of std::move to workaround a problem
in VC++'s /analyze compiler that was causing build errors in Chrome: https://code.google.com/p/googlemock/issues/detail?id=172
This commit is contained in:
parent
53d49dc43e
commit
02d6479259
|
@ -2263,8 +2263,15 @@ class PropertyMatcher {
|
||||||
*listener << "whose given property is ";
|
*listener << "whose given property is ";
|
||||||
// Cannot pass the return value (for example, int) to MatchPrintAndExplain,
|
// Cannot pass the return value (for example, int) to MatchPrintAndExplain,
|
||||||
// which takes a non-const reference as argument.
|
// which takes a non-const reference as argument.
|
||||||
|
#if defined(_PREFAST_ ) && _MSC_VER == 1800
|
||||||
|
// Workaround bug in VC++ 2013's /analyze parser.
|
||||||
|
// https://connect.microsoft.com/VisualStudio/feedback/details/1106363/internal-compiler-error-with-analyze-due-to-failure-to-infer-move
|
||||||
|
posix::Abort(); // To make sure it is never run.
|
||||||
|
return false;
|
||||||
|
#else
|
||||||
RefToConstProperty result = (obj.*property_)();
|
RefToConstProperty result = (obj.*property_)();
|
||||||
return MatchPrintAndExplain(result, matcher_, listener);
|
return MatchPrintAndExplain(result, matcher_, listener);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MatchAndExplainImpl(true_type /* is_pointer */, const Class* p,
|
bool MatchAndExplainImpl(true_type /* is_pointer */, const Class* p,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user