https://llvm.org/bugs/show_bug.cgi?id=31409
Bug ID: 31409 Summary: Fail to link instantiation of basic_regex with a custom character type Product: libc++ Version: unspecified Hardware: PC OS: All Status: NEW Severity: normal Priority: P Component: All Bugs Assignee: unassignedclangb...@nondot.org Reporter: ka...@codesynthesis.com CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com Classification: Unclassified Trying to instantiate std::basic_regex template with a custom character type results in a linker error like this: driver.o:(.rodata._ZTVNSt3__123__match_any_but_newlineIN6build24test6script5regex9line_charEEE[_ZTVNSt3__123__match_any_but_newlineIN6build24test6script5regex9line_charEEE]+0x20): undefined reference to `std::__1::__match_any_but_newline<build2::test::script::regex::line_char>::__exec(std::__1::__state<build2::test::script::regex::line_char>&) const' That happens as libc++ only provides specialization of __match_any_but_newline::__exec() for char and wchar_t types, and lacks implementation which would be available for any other instantiation of the __match_any_but_newline template. Probably it would be right to assume that a custom character type can have no notion of a newline character at all. As a real life example, in build2 toolchain we develop, such a character represents a line of a program output, or an inner level regex matching such a line, or a syntax regex character. -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs