This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ Patch] PR 67065 ("Missing diagnostics for ill-formed program with main variable instead of function")


Hi,

On 08/21/2015 08:30 AM, Markus Trippelsdorf wrote:
On 2015.08.21 at 08:18 +0200, Markus Trippelsdorf wrote:
On 2015.08.19 at 21:46 +0200, Paolo Carlini wrote:
Hi,

submitter noticed that, in violation of [basic.start.main], we don't
reject as ill-formed the declaration of a 'main' variable in the global
namespace. Not a big deal IMHO, but the below simple check works well
for me on x86_64-linux.
Well, it breaks building Firefox for example (several violations).
I'm not sure this is really worth the hassle. Maybe a warning instead of
an error would be acceptable?
For example:

  % echo "void foo() { int main; }" | g++ -c -x c++ -
<stdin>: In function ‘void foo()’:
<stdin>:1:18: error: cannot declare ‘::main’ to be a global variable
This is simply a bug in my patch, isn't intended. I'll see if I can fix it today or I will simply revert the change for now. Sorry about that. Another issue, is whether we want to implement that sentence, and we want an error. For example, current clang does, and emits an error. I don't have a strong opinion about that.

Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]