mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #10568 from ethereum/oldClangFixes
Deal with old clang compilers.
This commit is contained in:
commit
90c693be09
@ -65,11 +65,8 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
|
|||||||
|
|
||||||
# Additional GCC-specific compiler settings.
|
# Additional GCC-specific compiler settings.
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||||
|
|
||||||
# Check that we've got GCC 8.0 or newer.
|
# Check that we've got GCC 8.0 or newer.
|
||||||
execute_process(
|
if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0))
|
||||||
COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
|
||||||
if (NOT (GCC_VERSION VERSION_GREATER 8.0 OR GCC_VERSION VERSION_EQUAL 8.0))
|
|
||||||
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 8.0 or greater.")
|
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 8.0 or greater.")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
@ -78,6 +75,11 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
|
|||||||
|
|
||||||
# Additional Clang-specific compiler settings.
|
# Additional Clang-specific compiler settings.
|
||||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
|
# Check that we've got clang 7.0 or newer.
|
||||||
|
if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7.0))
|
||||||
|
message(FATAL_ERROR "${PROJECT_NAME} requires clang++ 7.0 or greater.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
if ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
|
if ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
|
||||||
# Set stack size to 32MB - by default Apple's clang defines a stack size of 8MB.
|
# Set stack size to 32MB - by default Apple's clang defines a stack size of 8MB.
|
||||||
# Normally 16MB is enough to run all tests, but it will exceed the stack, if -DSANITIZE=address is used.
|
# Normally 16MB is enough to run all tests, but it will exceed the stack, if -DSANITIZE=address is used.
|
||||||
|
@ -164,11 +164,11 @@ void CHC::endVisit(ContractDefinition const& _contract)
|
|||||||
if (base != &_contract)
|
if (base != &_contract)
|
||||||
{
|
{
|
||||||
m_callGraph[&_contract].insert(base);
|
m_callGraph[&_contract].insert(base);
|
||||||
vector<ASTPointer<Expression>> const& args = baseArgs.count(base) ? baseArgs.at(base) : decltype(args){};
|
|
||||||
|
|
||||||
auto baseConstructor = base->constructor();
|
auto baseConstructor = base->constructor();
|
||||||
if (baseConstructor && !args.empty())
|
if (baseConstructor && baseArgs.count(base))
|
||||||
{
|
{
|
||||||
|
vector<ASTPointer<Expression>> const& args = baseArgs.at(base);
|
||||||
auto const& params = baseConstructor->parameters();
|
auto const& params = baseConstructor->parameters();
|
||||||
solAssert(params.size() == args.size(), "");
|
solAssert(params.size() == args.size(), "");
|
||||||
for (unsigned i = 0; i < params.size(); ++i)
|
for (unsigned i = 0; i < params.size(); ++i)
|
||||||
|
Loading…
Reference in New Issue
Block a user