Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile issues because CoinByteArray is a pointer, no integer #131

Open
christoph-cullmann opened this issue May 1, 2020 · 2 comments
Open

Comments

@christoph-cullmann
Copy link

I get errors with clang 10 like:

In file included from /local/hdd/cullmann/git/3rdparty/cbc/src/CoinUtils/src/CoinPackedVector.cpp:13:
/local/hdd/cullmann/git/3rdparty/cbc/src/CoinUtils/src/CoinHelperFunctions.hpp: In function ‘void CoinMemcpyN(const T*, CoinByteArray, T*)’:
/local/hdd/cullmann/git/3rdparty/cbc/src/CoinUtils/src/CoinHelperFunctions.hpp:331:57: error: invalid operands of types ‘const CoinByteArray’ {aka ‘int* const’} and ‘int’ to binary ‘operator>>’
331 | for (CoinBigIndex n = static_cast(size>>3); n > 0; --n, from += 8, to += 8) {
| ~~~~^~~
| | |
| | int
| const CoinByteArray {aka int* const}
/local/hdd/cullmann/git/3rdparty/cbc/src/CoinUtils/src/CoinHelperFunctions.hpp:341:16: error: invalid operands of types ‘const CoinByteArray’ {aka ‘int* const’} and ‘int’ to binary ‘operator%’
341 | switch (size % 8) {
| ~~~~ ^ ~
| | |
| | int
| const CoinByteArray {aka int* const}

I would assume you want to use a integer type of the right size instead.

Wouldn't size_t fit the bill?

It should be an integer large enough to be used as size/index of any allocated array in memory (both for 32 and 64 systems).

@christoph-cullmann
Copy link
Author

Looking at the definition of

#define CoinIntPtr COINUTILS_INTPTR_T

perhaps the issue is that my compile uses the config_coinutils_default.h

And there the definition of

COINUTILS_INTPTR_T

is either

#define COINUTILS_INTPTR_T ULONG_PTR

or

#define COINUTILS_INTPTR_T int *

instead of something like intptr_t

@svigerske
Copy link
Member

I changed it to intptr_t for non-Windows in config_coinutils_default.h. Good luck.

jhmgoossens pushed a commit to jhmgoossens/CoinUtils that referenced this issue Jun 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants