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

[BUG] extend_right/left() needs char const * overload #1588

Merged

Conversation

Irallia
Copy link
Contributor

@Irallia Irallia commented Feb 11, 2020

Resolves #1473.

Test case added.

@Irallia Irallia requested review from a team, wvdtoorn, simonsasse and marehr and removed request for a team, wvdtoorn and simonsasse February 11, 2020 18:01
CHANGELOG.md Outdated Show resolved Hide resolved
@SGSSGene
Copy link
Contributor

Wow, any one knows why std::ranges::range includes the \0 at the end of a char*?

Also I wanted to point out that the same issue should exists with bi_fm_index_cursor.

@Irallia Irallia requested a review from marehr February 13, 2020 10:48
@Irallia Irallia force-pushed the BUG/search/extend_right_needs_overload branch from 295b32a to 67e065c Compare February 13, 2020 12:11
@codecov
Copy link

codecov bot commented Feb 13, 2020

Codecov Report

Merging #1588 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #1588   +/-   ##
=======================================
  Coverage   97.68%   97.68%           
=======================================
  Files         237      237           
  Lines        9057     9063    +6     
=======================================
+ Hits         8847     8853    +6     
  Misses        210      210           
Impacted Files Coverage Δ
...lude/seqan3/search/fm_index/bi_fm_index_cursor.hpp 100.00% <100.00%> (ø)
include/seqan3/search/fm_index/fm_index_cursor.hpp 100.00% <100.00%> (ø)
...e/seqan3/alignment/pairwise/detail/type_traits.hpp 100.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update bd921cd...941d650. Read the comment docs.

@eseiler
Copy link
Member

eseiler commented Feb 13, 2020

Wow, any one knows why std::ranges::range includes the \0 at the end of a char*?

char const * models std::ranges::range and it always includes a \0 as terminator (C-Style string). Also, the size of the char const * includes the terminator, so it's natural to include the terminator when you look at it as a range. If you do not want the terminator, you need to explicitly do something to get rid of it. For example, constructing a string_view which is aware that the \0 isn't part of the acutal string, but more like an implementation detail, and acts this way, i.e. as a range it does not include the \0 and the size also does not include the terminator.

Also I wanted to point out that the same issue should exists with bi_fm_index_cursor.

Yes it should; for extend_left and extend_right

Copy link
Member

@marehr marehr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add the overloads and test cases for extend_left, too?

Thank you!

@marehr marehr changed the title [BUG] extend_right() needs char const * overload [BUG] extend_right/left() needs char const * overload Feb 13, 2020
@SGSSGene
Copy link
Contributor

SGSSGene commented Feb 13, 2020

Wow, any one knows why std::ranges::range includes the \0 at the end of a char*?

char const * models std::ranges::range and it always includes a \0 as terminator (C-Style string). Also, the size of the char const * includes the terminator, so it's natural to include the terminator when you look at it as a range. If you do not want the terminator, you need to explicitly do something to get rid of it. For example, constructing a string_view which is aware that the \0 isn't part of the acutal string, but more like an implementation detail, and acts this way, i.e. as a range it does not include the \0 and the size also does not include the terminator.

I know that std::ranges::range includes the \0 ;-) I was more wondering, why does it?
If I look at C and functions like strlen it doesn't include the \0. Also std::ranges::range assumes that a char const* is a C-Style string. This seems counter intuitive since char const* is often used for just data. But even assuming it is a C-Style string, in which cases do I want to manipulate the terminator? I can think of many cases were are \0 should be ignored, but non were it could be useful.

@marehr
Copy link
Member

marehr commented Feb 13, 2020

I know that std::ranges::range includes the \0 ;-) I was more wondering, why does it?
If I look at C and functions like strlen it doesn't include the \0. Also std::ranges::range assumes that a char const* is a C-Style string. This seems counter intuitive since char const* is often used for just data. But even assuming it is a C-Style string, in which cases do I want to manipulate the terminator? I can think of many cases were are \0 should be ignored, but non were it could be useful.

In this case the string is not of type char const * (char pointer, which is not a range), but of type char [] (bounded char array, which is a range). (See https://en.cppreference.com/w/cpp/language/array)

Only a bounded array can be a range, because it knows its start and its end position (start + array size). Here an example: https://godbolt.org/z/zt-Aga

You can argue why char[] should be always a range with size - 1, but I guess that this is more error prone (on some platforms is uint8_t = char so a sequence of numbers might be misinterpreted as a cstring and would truncate data) than to accept that char literals always include \0. An easy fix to convert a classic cstr is to use string_view.

@SGSSGene
Copy link
Contributor

I know that std::ranges::range includes the \0 ;-) I was more wondering, why does it?
If I look at C and functions like strlen it doesn't include the \0. Also std::ranges::range assumes that a char const* is a C-Style string. This seems counter intuitive since char const* is often used for just data. But even assuming it is a C-Style string, in which cases do I want to manipulate the terminator? I can think of many cases were are \0 should be ignored, but non were it could be useful.

In this case the string is not of type char const * (char pointer, which is not a range), but of type char [] (bounded char array, which is a range). (See https://en.cppreference.com/w/cpp/language/array)

Only a bounded array can be a range, because it knows its start and its end position (start + array size). Here an example: https://godbolt.org/z/zt-Aga

Ah it is a char [], I wasn't aware of that. Now the puzzle comes together. I have no experience with ranges and couldn't find anything on this particular issue. Thank you

@Irallia Irallia requested a review from marehr February 14, 2020 14:33
Copy link
Member

@marehr marehr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm :)

@Irallia Irallia requested a review from a team February 17, 2020 12:09
@Irallia Irallia force-pushed the BUG/search/extend_right_needs_overload branch 2 times, most recently from 28c5a57 to a4d3e06 Compare March 3, 2020 11:22
@Irallia Irallia force-pushed the BUG/search/extend_right_needs_overload branch from ffd0ba3 to 4d6bc09 Compare April 6, 2020 15:00
@Irallia Irallia requested a review from smehringer April 7, 2020 08:59
@Irallia
Copy link
Contributor Author

Irallia commented Apr 7, 2020

@smehringer after this long time, I had some merging problems. I solved everything, but some includes poped up witch are not mine I think.. Can you please check with me again if there are still open comments and if these includes are useful?

Copy link
Member

@smehringer smehringer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I caught some things :)

CHANGELOG.md Outdated
@@ -56,6 +56,8 @@ Note that 3.1.0 will be the first API stable release and interfaces in this rele

* Added `seqan3::interleaved_bloom_filter`, a data structure that efficiently answers set-membership queries for
multiple bins ([\#920](https://github.com/seqan/seqan3/pull/920)).
* The `extend_right()` function can now also handle `char const *`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this can be removed because there is a note under bug fixes below

@@ -10,6 +10,8 @@
#include "fm_index_collection_test_template.hpp"
#include "fm_index_test_template.hpp"

#include <seqan3/alphabet/aminoacid/aa27.hpp>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove this

@@ -8,6 +8,8 @@
#include "fm_index_collection_test_template.hpp"
#include "fm_index_test_template.hpp"

#include <seqan3/alphabet/adaptation/uint.hpp>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove this

@@ -10,6 +10,8 @@
#include "fm_index_collection_test_template.hpp"
#include "fm_index_test_template.hpp"

#include <seqan3/alphabet/nucleotide/dna4.hpp>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove this

@@ -11,6 +11,9 @@
#include "fm_index_collection_test_template.hpp"
#include "fm_index_test_template.hpp"

#include <seqan3/alphabet/nucleotide/dna4.hpp>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove this

@Irallia Irallia force-pushed the BUG/search/extend_right_needs_overload branch 2 times, most recently from a04799c to 941d650 Compare April 8, 2020 13:43
@Irallia Irallia requested a review from smehringer April 8, 2020 13:47
Copy link
Member

@smehringer smehringer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tiny tiny thing

@@ -222,5 +222,38 @@ TYPED_TEST_P(bi_fm_index_cursor_collection_test, to_rev_cursor)
}
}

TYPED_TEST_P(bi_fm_index_cursor_collection_test, locate_char_string)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
TYPED_TEST_P(bi_fm_index_cursor_collection_test, locate_char_string)
TYPED_TEST_P(bi_fm_index_cursor_collection_test, extend_const_char_pointer)

💅 Since it is not about locate but about extend_left/right :)

@marehr
Copy link
Member

marehr commented Apr 9, 2020

Travis fails:

In file included from /home/travis/build/seqan/seqan3/include/seqan3/search/fm_index/fm_index.hpp:24,

                 from /home/travis/build/seqan/seqan3/include/seqan3/search/fm_index/bi_fm_index.hpp:20,

                 from /home/travis/build/seqan/seqan3/include/seqan3/search/fm_index/all.hpp:48,

                 from /home/travis/build/seqan/seqan3/test/unit/search/fm_index_cursor/fm_index_cursor_collection_test_template.hpp:12,

                 from /home/travis/build/seqan/seqan3/test/unit/search/fm_index_cursor/fm_index_cursor_collection_test.cpp:16:

/home/travis/build/seqan/seqan3/include/seqan3/search/fm_index/fm_index_cursor.hpp: In member function ‘void gtest_suite_fm_index_cursor_collection_test_::locate_char_string<gtest_TypeParam_>::TestBody() [with gtest_TypeParam_ = seqan3::fm_index_cursor<seqan3::fm_index<char, (seqan3::text_layout)1> >]’:

/home/travis/build/seqan/seqan3/include/seqan3/search/fm_index/fm_index_cursor.hpp:331:19: error: ‘it1.seqan3::fm_index_cursor<seqan3::fm_index<char, (seqan3::text_layout)1> >::parent_lb’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

         size_type new_parent_lb = parent_lb, new_parent_rb = parent_rb;

                   ^~~~~~~~~~~~~

/home/travis/build/seqan/seqan3/include/seqan3/search/fm_index/fm_index_cursor.hpp:331:46: error: ‘it1.seqan3::fm_index_cursor<seqan3::fm_index<char, (seqan3::text_layout)1> >::parent_rb’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

         size_type new_parent_lb = parent_lb, new_parent_rb = parent_rb;

                                              ^~~~~~~~~~~~~

cc1plus: all warnings being treated as errors

@Irallia Irallia force-pushed the BUG/search/extend_right_needs_overload branch from 941d650 to d61a120 Compare April 11, 2020 11:58
@rrahn rrahn added this to the Sprint 2 milestone Apr 15, 2020
@rrahn
Copy link
Contributor

rrahn commented Apr 15, 2020

It seems that these here are not initialised:

size_type parent_lb;
//!\brief Right suffix array interval of the parent node. Needed for cycle_back().
size_type parent_rb;

So you need to change the initialisers:

    //!\brief Underlying FM index.
    index_type const * index{nullptr};
    //!\brief Left suffix array interval of the parent node. Needed for cycle_back().
    size_type parent_lb{};
    //!\brief Right suffix array interval of the parent node. Needed for cycle_back().
    size_type parent_rb{};
    //!\brief Underlying index from the SDSL.
    node_type node{};
    //!\brief Alphabet size of the index without delimiters
    sdsl_sigma_type sigma{};

Signed-off-by: Lydia Buntrock <lydia.buntrock@fu-berlin.de>
Signed-off-by: Lydia Buntrock <lydia.buntrock@fu-berlin.de>
Signed-off-by: Lydia Buntrock <lydia.buntrock@fu-berlin.de>
Signed-off-by: Lydia Buntrock <lydia.buntrock@fu-berlin.de>
…udes

Signed-off-by: Lydia Buntrock <lydia.buntrock@fu-berlin.de>
Signed-off-by: Lydia Buntrock <lydia.buntrock@fu-berlin.de>
@Irallia Irallia force-pushed the BUG/search/extend_right_needs_overload branch from d61a120 to 1e7cd7d Compare April 16, 2020 11:47
@Irallia
Copy link
Contributor Author

Irallia commented Apr 17, 2020

@rrahn, thanks for your help! It seems that your suggestion helped a bit. Travis is running through now, but Jenkins still shows some problems with the osx_g++-9_cereal-true_Release:
99% tests passed, 3 tests failed out of 6419
The following tests FAILED:
5930 - search_collection_test_NOT_BUILT (Not Run)
5963 - search_scheme_algorithm_test_NOT_BUILT (Not Run)
5964 - search_scheme_test_NOT_BUILT (Not Run)

I still cannot reconstruct the errors.
Log file:

[ 91%] Linking CXX executable search_collection_test
g++-9: error: CMakeFiles/search_collection_test.dir/search_collection_test.cpp.o: No such file or directory
CMake Error at /usr/local/Cellar/cmake/3.15.3/share/cmake/Modules/GoogleTestAddTests.cmake:26 (message):
  Specified test executable does not exist.

    Path: '/Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/build/search/search_collection_test'

[ 91%] Built target search_collection_test

@smehringer
Copy link
Member

Jenkins currently fails on every PR with this error :( I think @rrahn is working on it already

@marehr
Copy link
Member

marehr commented Apr 20, 2020

Current build failure:

[ 89%] Building CXX object search/CMakeFiles/search_scheme_test.dir/search_scheme_test.cpp.o
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/wait.h:110,
                 from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:66,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cstdlib:75,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/stl_algo.h:59,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/algorithm:62,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:8:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/resource.h:443:34: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  443 | int     getiopolicy_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/resource.h:449:39: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  449 | int     setiopolicy_np(int, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:128,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cstdlib:75,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/stl_algo.h:59,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/algorithm:62,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:8:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/malloc/_malloc.h:52:74: error: expected initializer before '__OSX_AVAILABLE_STARTING'
   52 | int   posix_memalign(void **__memptr, size_t __alignment, size_t __size) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
      |                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cstdlib:75,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/stl_algo.h:59,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/algorithm:62,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:8:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:270:53: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  270 | void  arc4random_buf(void * __buf, size_t __nbytes) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:273:46: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  273 |   arc4random_uniform(uint32_t __upper_bound) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cstdlib:75,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/stl_algo.h:59,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/algorithm:62,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:8:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:292:45: error: expected initializer before '__OSX_AVAILABLE_BUT_DEPRECATED_MSG'
  292 | int  daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0, "Use posix_spawn APIs instead.") __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:325:6: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  325 |      __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:333:6: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  333 |      __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/_stdio.h:79,
                 from /usr/local/Cellar/gcc/9.3.0/lib/gcc/9/gcc/x86_64-apple-darwin19/9.3.0/include-fixed/stdio.h:78,
                 from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/algorithm:71,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:8:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/stdio.h:39:56: error: expected initializer before '__OSX_AVAILABLE_STARTING'
   39 | int     renameat(int, const char *, int, const char *) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
      |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/algorithm:71,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:8:
/usr/local/Cellar/gcc/9.3.0/lib/gcc/9/gcc/x86_64-apple-darwin19/9.3.0/include-fixed/stdio.h:366:67: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  366 | int dprintf(int, const char * __restrict, ...) __printflike(2, 3) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/Cellar/gcc/9.3.0/lib/gcc/9/gcc/x86_64-apple-darwin19/9.3.0/include-fixed/stdio.h:367:79: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  367 | int vdprintf(int, const char * __restrict, __gnuc_va_list) __printflike(2, 0) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                                               ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/algorithm:71,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:8:
/usr/local/Cellar/gcc/9.3.0/lib/gcc/9/gcc/x86_64-apple-darwin19/9.3.0/include-fixed/stdio.h:368:123: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  368 | ssize_t getdelim(char ** __restrict __linep, size_t * __restrict __linecapp, int __delimiter, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                                                                                           ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/Cellar/gcc/9.3.0/lib/gcc/9/gcc/x86_64-apple-darwin19/9.3.0/include-fixed/stdio.h:369:105: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  369 | ssize_t getline(char ** __restrict __linep, size_t * __restrict __linecapp, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                                                                         ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/algorithm:71,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:8:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:197:67: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  197 | wchar_t *wcpcpy(wchar_t * __restrict, const wchar_t * __restrict) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:198:76: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  198 | wchar_t *wcpncpy(wchar_t * __restrict, const wchar_t * __restrict, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:199:34: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  199 | wchar_t *wcsdup(const wchar_t *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:200:54: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  200 | int     wcscasecmp(const wchar_t *, const wchar_t *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                      ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:201:65: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  201 | int     wcsncasecmp(const wchar_t *, const wchar_t *, size_t n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:202:49: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  202 | size_t  wcsnlen(const wchar_t *, size_t) __pure __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:215:47: error: expected initializer before '__OSX_AVAILABLE_STARTING'
  215 | wchar_t *fgetwln(FILE * __restrict, size_t *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~
[ 89%] Linking CXX executable view_translate_test
In file included from /usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cinttypes:46,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/include/seqan3/core/platform.hpp:10,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/include/seqan3/search/detail/search_scheme_precomputed.hpp:18,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/helper_search_scheme.hpp:13,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:11:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/inttypes.h:234:25: error: expected constructor, destructor, or type conversion before '(' token
  234 | __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
      |                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/inttypes.h:244:25: error: expected constructor, destructor, or type conversion before '(' token
  244 | __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
      |                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/inttypes.h:249:25: error: expected constructor, destructor, or type conversion before '(' token
  249 | __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
      |                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/inttypes.h:255:25: error: expected constructor, destructor, or type conversion before '(' token
  255 | __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
      |                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/inttypes.h:262:25: error: expected constructor, destructor, or type conversion before '(' token
  262 | __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
      |                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/inttypes.h:268:25: error: expected constructor, destructor, or type conversion before '(' token
  268 | __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
      |                         ^
In file included from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/include/seqan3/core/platform.hpp:10,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/include/seqan3/search/detail/search_scheme_precomputed.hpp:18,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/helper_search_scheme.hpp:13,
                 from /Users/builder/jenkins/ws/seqan3_build_pipeline_PR-1588/checkout/test/unit/search/search_scheme_test.cpp:11:
/usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cinttypes:61:11: error: '::imaxabs' has not been declared
   61 |   using ::imaxabs;
      |           ^~~~~~~
/usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cinttypes:62:11: error: '::imaxdiv' has not been declared
   62 |   using ::imaxdiv;
      |           ^~~~~~~
/usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cinttypes:68:11: error: '::strtoimax' has not been declared
   68 |   using ::strtoimax;
      |           ^~~~~~~~~
/usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cinttypes:69:11: error: '::strtoumax' has not been declared
   69 |   using ::strtoumax;
      |           ^~~~~~~~~
/usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cinttypes:72:11: error: '::wcstoimax' has not been declared
   72 |   using ::wcstoimax;
      |           ^~~~~~~~~
/usr/local/Cellar/gcc/9.3.0/include/c++/9.3.0/cinttypes:73:11: error: '::wcstoumax' has not been declared
   73 |   using ::wcstoumax;
      |           ^~~~~~~~~

@smehringer
Copy link
Member

Since the error is not related to this PR I'll merge this

@smehringer smehringer merged commit d921134 into seqan:master Apr 20, 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

Successfully merging this pull request may close these issues.

extend_right/left() needs char const * overload.
6 participants