Re: C++ version for GCC development

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 3 Mar 2022 at 09:04, Abdullah Siddiqui
<siddiquiabdullah92@xxxxxxxxx> wrote:
>
> Hello.
>
>> Hello.
>>
>> This question is for the developers of GCC:
>>
>> Which C++ version are you using to write the C++ code of the current GCC
>> version?
>>
>>
>>
>> C++11
>
>
> I know Jonathan said earlier that GCC is implemented in C++11. However, this page states the following:
>
>>  As of version 4.8, GCC is (mostly) implemented in C++, C++98 specifically.
>
>
> The current version is GCC 11.2, isn't it?

That's the most recent released version. The Git master branch is
newer than that.

Obviously a page talking about the status as of GCC 4.8 is going to be
outdated, because that was about 7 years ago.

> At what point did the GCC developers give up C++98 and start using C++11?

For GCC 11. This is stated at https://gcc.gnu.org/install/prerequisites.html

> Is it correct to say that the C++ code of GCC is composed of both C++98 and C++11?

No, IMHO it's not correct. Some files might use an older C++98-ish
style, but they are all compiled as C++11 (or newer) and so it would
be wrong to say they are C++98. They can use 'auto' type deduction and
'constexpr' and 'noexcept' so they are not C++98.


> Additionally, Jonathan also stated the following in one of his emails in this thread:
>
>> It also looks like they haven't updated those numbers since April last year, so it will wrongly count all .c files as C even the ones which contain C++ instead. A huge number of files were renamed from .c to .cc recently, because they contain C++ and so had a misleading .c extension. That doesn't seem to be accounted for in those numbers.
>
>
> The page linked above also has a similar claim:
>
>>  As of version 4.8, GCC is (mostly) implemented in C++, but we haven’t renamed the source files. Hence you will see source files with a .c extension throughout the source tree. These are generally handled by the build system as C++, rather than C.
>
>
> Does this mean that ALL the files with the ".c" extension in the GCC codebase are C++ files?

No, because as I said previously (and you quoted above), they were
renamed from .c to .cc recently. Dave's page that talks about "as of
version 4.8" is very old now. My email from a few weeks ago is a lot
more current. You should use the current information, not the seven
year old information.

> How shall I determine which files are C++ files and which ones are in C?

In the current Git master branch, .c files are C and .cc files are
C++. The exceptions are some tests which have .c extensions but get
compiled as both C and C++, when we want to test that both language
front-ends pass the test.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux