From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id ECF793857BAF; Tue, 4 Oct 2022 19:12:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ECF793857BAF Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1664910724; bh=KqUyN6kmRRpsNQBklxx0QMArzYkfq9OquKkBrJwOw7c=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=k1+XZfDgI64Y2tCpLNPUlsgiY5ChTGfV6zFTnfCShPXoCa2SieXtN1ZEjl0WM9vQj ZyTyNvViq/RiHq1QXukw+CP92HGhApPDcCYtkj4mF/EBucrZPNFCgagRHk3bSrZkg7 bG8R18j1ntiCOF2GR4PPvfy41aO/VUVq2hJtukDw= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.178.29] ([93.207.82.142]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N4hvb-1pNTlr1vKp-011jma; Tue, 04 Oct 2022 21:12:04 +0200 Message-ID: Date: Tue, 4 Oct 2022 21:12:03 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PATCH RESEND 1/1] p1689r5: initial support Content-Language: en-US To: Ben Boeckel , gcc-patches@gcc.gnu.org Cc: gcc@gcc.gnu.org, jason@redhat.com, brad.king@kitware.com, fortran@gcc.gnu.org, Ben Boeckel , nathan@acm.org Newsgroups: gmane.comp.gcc.fortran,gmane.comp.gcc.patches,gmane.comp.gcc.devel References: <20221004151200.1275636-1-ben.boeckel@kitware.com> <20221004151200.1275636-2-ben.boeckel@kitware.com> From: Harald Anlauf In-Reply-To: <20221004151200.1275636-2-ben.boeckel@kitware.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:jIPOM9+LIP8PzNvFFlJdSJ9jPnDEGFrKgw5ddP4ZJT0a/SBXtRy 95p8sutX7knyBx4e/8a43RTFzB9CjYuI8EFrV5uNF57hPBdTuTjyqPVv0519VnasX/KldQp AzY4wgxyUk0rG8cjyhmPy0t+AnuEE1dDQ0IRXMq9Yo47wmfbNM+SaAD6FKLAEtqHldiZPqt NHXaNpV7Ci9L5puzaIMdw== X-UI-Out-Filterresults: notjunk:1;V03:K0:LLzWAX+yb+c=:7SFUdFsYNH6AluVj42Q3lP QhNCXgZ0RCc011TDNS0PhCxklQlSgrbFbtMKhUVntxaSpscfl3bCzr+d7y+SmqJl++lCOXPyq TWxqeDqbcG8q0jdwHBmPUgBP7RuUjplox5m7I4Mt0RclPhKHpduHhEJeGq7QyI99XWj544VG0 vgVBp7XWvqXBxeDmGuCWbtA5dR8izSGOizZ/pLzbhLsZrGF3lVBdGq6+gFrVCCC1OqVjjjQxl x2wNZwk2HSzxpdoJLoyczi9m7Hh+jX3m1f5U6gfc64VuOQ32jgQ5aMLr51e5HSxV1wu+qh+ok qwAtIMYd81W879h9aV5c57z3ENNZbAu8SCoYcAI4PkKYXPWiB7UJsKeZBKsR7831CnxAiyQI8 IuEFzDQ13kReMbo6V/K15JPHRzY+YeMQcWhAneKZvD6LtUzWQzXpXvSBHeWY06y210U6IH56+ iTgv/cKPHGK/n9PAWe9hZ7v2GX3mLaeW+X0SfQsLxkO5V8hCmjvJu2E57jy41yslZT0fnWAHY dOEpaW10m/CHp4d611E5B3rMIBtwgOc1fWVO0fiIW/nvdsNyhftaT9idaCEZVwb1g0tu42XvP F6VODy2f0NHhBdQG40CbbbihhE9SYnsId3c2SEnPOWuUWJBgal4nwGuSza25HxdjK6dnBx/rt /4J4Y9xwdzueuYYcgChyShniNEDVWoRQ/E2gJzZkbAbkn7J4r0iHEfj39lBa03GGMPChMi032 jG+9NFANpZUcVVV+SbI514vADsipogoik6cL2uMszF4CZUQCHrcUHwlua5YDlNmXOhn1cwT84 hRi8r9fQtoVII2s7IyKmopxAjUj+FKhbWoHwo6LfXTElZqhzHRmbjBTV74vBGdk8xyAcEKQyy BQJwYqF+WEA1MVXHPrm6/g8Q+MgR79CW864IoRy+9UAoWCwUOkBTTCIcUajD9KWEVAnsCqtgv /1+YZ6hiRTezjnWmWLf+vLKU/nm8vQ3s8Hv/dLTBpVT4i+7+zAF8J63pxFypuxm+IPxmn0XQN y5PM8Op8m49Kp4N3TlK7LmBm4ktc8wZEpH2MnIugc8MvUgv+BxQe8ZfgJ9ZQ0+fclu88Tt0ea /ublIRP5E4pvsSVEOALI9HH+1foWSihCJHTLCr7ngOhQkupTsYTlVjAR0k5IRV5gH8xlOhkch Wu+m0= X-Spam-Status: No, score=-13.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Am 04.10.22 um 17:12 schrieb Ben Boeckel: > This patch implements support for [P1689R5][] to communicate to a build > system the C++20 module dependencies to build systems so that they may > build `.gcm` files in the proper order. Is there a reason that you are touching so many frontends? > diff --git a/gcc/fortran/cpp.cc b/gcc/fortran/cpp.cc > index 364bd0d2a85..0b9df9c02cd 100644 > --- a/gcc/fortran/cpp.cc > +++ b/gcc/fortran/cpp.cc > @@ -712,7 +712,7 @@ gfc_cpp_done (void) > FILE *f =3D fopen (gfc_cpp_option.deps_filename, "w"); > if (f) > { > - cpp_finish (cpp_in, f); > + cpp_finish (cpp_in, f, NULL); > fclose (f); > } > else > @@ -721,7 +721,7 @@ gfc_cpp_done (void) > xstrerror (errno)); > } > else > - cpp_finish (cpp_in, stdout); > + cpp_finish (cpp_in, stdout, NULL); > } > > cpp_undef_all (cpp_in); Couldn't you simply default the third argument of cpp_finish() to NULL? > diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h > index 2db1e9cbdfb..90787230a9e 100644 > --- a/libcpp/include/cpplib.h > +++ b/libcpp/include/cpplib.h > @@ -298,6 +298,9 @@ typedef CPPCHAR_SIGNED_T cppchar_signed_t; > /* Style of header dependencies to generate. */ > enum cpp_deps_style { DEPS_NONE =3D 0, DEPS_USER, DEPS_SYSTEM }; > > +/* Format of header dependencies to generate. */ > +enum cpp_deps_format { DEPS_FMT_NONE =3D 0, DEPS_FMT_P1689R5 }; > + > /* The possible normalization levels, from most restrictive to least. = */ > enum cpp_normalize_level { > /* In NFKC. */ > @@ -581,6 +584,9 @@ struct cpp_options > /* Style of header dependencies to generate. */ > enum cpp_deps_style style; > > + /* Format of header dependencies to generate. */ > + enum cpp_deps_format format; > + > /* Assume missing files are generated files. */ > bool missing_files; > > @@ -1104,9 +1110,9 @@ extern void cpp_post_options (cpp_reader *); > extern void cpp_init_iconv (cpp_reader *); > > /* Call this to finish preprocessing. If you requested dependency > - generation, pass an open stream to write the information to, > - otherwise NULL. It is your responsibility to close the stream. */ > -extern void cpp_finish (cpp_reader *, FILE *deps_stream); > + generation, pass open stream(s) to write the information to, > + otherwise NULL. It is your responsibility to close the stream(s). = */ > +extern void cpp_finish (cpp_reader *, FILE *deps_stream, FILE *fdeps_st= ream); ^^^^^^^ > > /* Call this to release the handle at the end of preprocessing. Any > use of the handle after this function returns is invalid. */