aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2024-05-16 16:09:12 -0400
committerJason Merrill <jason@redhat.com>2024-05-29 09:48:05 -0400
commitff41abdca0ab9993b6170b9b1f46b3a40921f1b0 (patch)
tree24a581f44760ca6565531b62091634ed064381a7 /libcpp
parent18f477980c8597fe3dca2c2e8bd533c0c2b17aa6 (diff)
downloadgcc-ff41abdca0ab9993b6170b9b1f46b3a40921f1b0.zip
gcc-ff41abdca0ab9993b6170b9b1f46b3a40921f1b0.tar.gz
gcc-ff41abdca0ab9993b6170b9b1f46b3a40921f1b0.tar.bz2
c++: add module extensions
There is a trend in the broader C++ community to use a different extension for module interface units, even though (in GCC) they are compiled in the same way as other source files. Let's recognize these extensions as C++. .ixx is the MSVC standard, while the .c*m are supported by Clang. libc++ standard headers use .cppm, as their other source files use .cpp. Perhaps libstdc++ might use .ccm for parallel consistency? One issue with .c++m is that libcpp/mkdeps.cc has been using it for the phony dependencies to express module dependencies, so I'm changing mkdeps to something less likely to be an actual file, ".c++-module". gcc/cp/ChangeLog: * lang-specs.h: Add module interface extensions. gcc/ChangeLog: * doc/invoke.texi: Update module extension docs. libcpp/ChangeLog: * mkdeps.cc (make_write): Change .c++m to .c++-module. gcc/testsuite/ChangeLog: * g++.dg/modules/dep-1_a.C * g++.dg/modules/dep-1_b.C * g++.dg/modules/dep-2.C: Change .c++m to .c++-module.
Diffstat (limited to 'libcpp')
-rw-r--r--libcpp/mkdeps.cc13
1 files changed, 6 insertions, 7 deletions
diff --git a/libcpp/mkdeps.cc b/libcpp/mkdeps.cc
index 4cf0cf0..622d0dc 100644
--- a/libcpp/mkdeps.cc
+++ b/libcpp/mkdeps.cc
@@ -411,8 +411,7 @@ make_write_vec (const mkdeps::vec<const char *> &vec, FILE *fp,
return col;
}
-/* Write the dependencies to a Makefile. If PHONY is true, add
- .PHONY targets for all the dependencies too. */
+/* Write the dependencies to a Makefile. */
static void
make_write (const cpp_reader *pfile, FILE *fp, unsigned int colmax)
@@ -453,7 +452,7 @@ make_write (const cpp_reader *pfile, FILE *fp, unsigned int colmax)
column = make_write_name (d->cmi_name, fp, column, colmax);
fputs (":", fp);
column++;
- column = make_write_vec (d->modules, fp, column, colmax, 0, ".c++m");
+ column = make_write_vec (d->modules, fp, column, colmax, 0, ".c++-module");
fputs ("\n", fp);
}
@@ -463,7 +462,7 @@ make_write (const cpp_reader *pfile, FILE *fp, unsigned int colmax)
{
/* module-name : cmi-name */
column = make_write_name (d->module_name, fp, 0, colmax,
- true, ".c++m");
+ true, ".c++-module");
fputs (":", fp);
column++;
column = make_write_name (d->cmi_name, fp, column, colmax);
@@ -471,7 +470,7 @@ make_write (const cpp_reader *pfile, FILE *fp, unsigned int colmax)
column = fprintf (fp, ".PHONY:");
column = make_write_name (d->module_name, fp, column, colmax,
- true, ".c++m");
+ true, ".c++-module");
fputs ("\n", fp);
}
@@ -488,11 +487,11 @@ make_write (const cpp_reader *pfile, FILE *fp, unsigned int colmax)
fputs ("\n", fp);
}
}
-
+
if (d->modules.size ())
{
column = fprintf (fp, "CXX_IMPORTS +=");
- make_write_vec (d->modules, fp, column, colmax, 0, ".c++m");
+ make_write_vec (d->modules, fp, column, colmax, 0, ".c++-module");
fputs ("\n", fp);
}
}