init Tests for initialization semantics, constructors/destructors, etc.
lookup Tests for lookup semantics, namespaces, using, etc.
lto Tests for Link Time Optimization.
+modules Tests for C++20 modules.
opt Tests for fixes of bugs with particular optimizations.
overload Tests for overload resolution and conversions.
parse Tests for parsing.
--- /dev/null
+// { dg-module-do link }
+// { dg-additional-options "-fmodules -finput-charset=UTF-8" }
+
+export module 영혼;
+// { dg-module-cmi }
+
+export unsigned f(unsigned x) {
+ return x + 3;
+}
--- /dev/null
+// { dg-module-do link }
+// { dg-additional-options "-fmodules -finput-charset=UTF-8" }
+
+#include <iostream>
+
+import 영혼;
+
+int main(void) {
+ std::cout << f(13) << '\n';
+ return 0;
+}
--- /dev/null
+$root .
+灵魂 pr120458_a.gcm
--- /dev/null
+// { dg-module-do link }
+// { dg-additional-options "-fmodules -fmodule-mapper=[srcdir]/pr120458-2.map " }
+// { dg-additional-options "-finput-charset=UTF-8 " }
+// { dg-additional-files "pr120458-2.map" }
+
+export module 灵魂;
+// { dg-module-cmi }
+
+export unsigned f(unsigned x) {
+ return x + 3;
+}
--- /dev/null
+// { dg-module-do link }
+// { dg-additional-options "-fmodules -fmodule-mapper=[srcdir]/pr120458-2.map " }
+// { dg-additional-options "-finput-charset=UTF-8" }
+
+import 灵魂;
+
+#include <iostream>
+
+int main(void) {
+ std::cout << f(13) << '\n';
+ return 0;
+}
namespace Cody {
namespace Detail {
-static const char CONTINUE = S2C(u8";");
+static const unsigned char CONTINUE = S2C(u8";");
void MessageBuffer::BeginLine ()
{
for (std::string *word = nullptr;;)
{
- char c = *iter;
+ unsigned char c = *iter;
++iter;
if (c == S2C(u8" ") || c == S2C(u8"\t"))
return EINVAL;
}
- if (c < S2C(u8" ") || c >= 0x7f)
+ if (c < S2C(u8" "))
goto malformed;
++iter;
#if __cpp_char8_t >= 201811
template<unsigned I>
-constexpr char S2C (char8_t const (&s)[I])
+constexpr unsigned char S2C (char8_t const (&s)[I])
{
static_assert (I == 2, "only single octet strings may be converted");
return s[0];
}
#else
template<unsigned I>
-constexpr char S2C (char const (&s)[I])
+constexpr unsigned char S2C (char const (&s)[I])
{
static_assert (I == 2, "only single octet strings may be converted");
return s[0];