This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Do these warning messages during my bedops install mean bedops won't work properly?

While installing the most recent version of bedops the following two warnings appeared:

In file included from Wig2Bed.cpp:36:
../../../../../interfaces/general-headers/suite/BEDOPS.Constants.hpp:57:5: warning: static_assert declarations are incompatible with C++98
      [-Wc++98-compat]
    static_assert(sizeof(SignedCoordType) >= sizeof(INT_MAX_COORD_VALUE), "INT_MAX_COORD_VALUE is too big!"); // expected-warning {{static_...
    ^
In file included from Wig2Bed.cpp:39:
./Input.hpp:132:38: warning: padding struct 'Wig2Bed::Input' with 3 bytes to align 'inFiles_' [-Wpadded]
        std::vector< std::istream* > inFiles_;
                                     ^
2 warnings generated.
ARCH=x86_64 CC=clang CXX=clang++ make -C applications/bed/conversion/src/wig2bed -f Makefile.darwin
mkdir -p ../../bin && clang++ -o ../../bin/wig2bed_bin_x86_64 -Weverything -O3 -mmacosx-version-min=10.7 -arch x86_64 -lc++  -std=c++11 -stdlib=libc++ Wig2Bed.cpp -iquote../../../../../interfaces/general-headers
In file included from Wig2Bed.cpp:36:
../../../../../interfaces/general-headers/suite/BEDOPS.Constants.hpp:57:5: warning: static_assert declarations are incompatible with C++98
      [-Wc++98-compat]
    static_assert(sizeof(SignedCoordType) >= sizeof(INT_MAX_COORD_VALUE), "INT_MAX_COORD_VALUE is too big!"); // expected-warning {{static_...
    ^
In file included from Wig2Bed.cpp:39:
./Input.hpp:132:38: warning: padding struct 'Wig2Bed::Input' with 7 bytes to align 'inFiles_' [-Wpadded]
        std::vector< std::istream* > inFiles_;
                                     ^
2 warnings generated.
lipo -create applications/bed/conversion/bin/wig2bed_bin_i386 applications/bed/conversion/bin/wig2bed_bin_x86_64 -output applications/bed/conversion/bin/wig2bed_bin

Has anyone else experienced this and will it affect the performance of the program? Also, I've noticed that since the switch to the new maverick OS my installs have not gone as smoothly as before, could this new OS be an issue here?

Thanks

bedops

1 answer

Clang in OS X is chatty with warnings, and we see them on our side, as well.

The static_assert issue is an expected warning and can be ignored, as we use (and require) C++11 features not available in the C++98 standard, and so we're unlikely to apply that older standard when compiling. (In fact, we need a fairly recent version of Xcode and the associated command-line toolkit in order to build BEDOPS on OS X, because of the need for C++11 support.)

The padded struct warning is just letting you know that an instance of the Wig2Bed::Input object will be allocated a little more memory in order to maintain word boundaries for the inFiles_ instance variable; this can also be ignored. We can explore re-ordering the declaration of variables to reduce padding, but wig2bed will function normally, all else the same.

Thanks so much for the quick and informative reply!

Log in to answer this question.