https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85165
Bug ID: 85165
Summary: gcc (and g++) not complaining about few unknown file
extensions like *.CC, *.Cc, *.cC
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kiran0802 at gmail dot com
Target Milestone: ---
When compiling the following test case i.e. test.CC, GCC (6.4.0 ver)
is not generating any warning and moreover respective object file is generated.
I think this while compiling a file with any unknown file extension, GCC
should generate a warning i.e. "test.CC: file not recognized: File truncated".
Steps to reproduce:
create a file with .CC extension and compile it with either gcc or g++ as shown
below.
with gcc-6.4.0 version:(compiler NOT generating any warnings for unknown file
extensions)
-------------------------------------------------------------------------
% touch test.CC
% gcc test.CC
/usr/lib/gcc/i686-pc-cygwin/6.4.0/../../../libcygwin.a(libcmain.o): In function
`main':
/usr/src/debug/cygwin-2.10.0-1/winsup/cygwin/lib/libcmain.c:37: undefined
reference to `WinMain@16'
collect2: error: ld returned 1 exit status
From above messages, it seems that the compiler has
recognized/considered/assumed .CC file extension as a valid extension and
further processing is done.
% gcc -c test.CC
There is no warning generated from the compiler and respective object file i.e.
test.o generated.
Note:
I had also tried with other file extensions such as .Cc and .cC and observed
the same behavior as above.
g++ is also behaving in the same way as gcc.
with gcc-4.8.0 version:(compiler is generated warnings as expected)
-------------------------------------------------------------------
% gcc test.CC
test.CC: file not recognized: File truncated
collect2: ld returned 1 exit status
I had also tried to invoke only compiler i.e. with -c option
% gcc -c test.CC
gcc: test.CC: linker input file unused because linking not done
% gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
From my understanding, gcc support following file extenstions:
.ada, .adb., .c, .C, .c++, .cc, .class, .cp, .cpp, .CPP, .cxx, etc.
As .CC, .Cc and .cC are not in the above list, compiler should generate
respective warning message.