re PR c++/67065 ([DR 1886] Missing diagnostics for ill-formed program with main variable instead of function)

/cp
2015-08-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67065
	* decl.c (grokvardecl): Reject 'main' as global variable.

/testsuite
2015-08-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67065
	* g++.dg/other/pr67065.C: New.

From-SVN: r227027
This commit is contained in:
Paolo Carlini 2015-08-20 10:18:03 +00:00
parent 58df0b91cb
commit dfd71aba57
4 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2015-08-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67065
* decl.c (grokvardecl): Reject 'main' as global variable.
2015-08-19 Jason Merrill <jason@redhat.com>
PR c++/66957

View File

@ -8355,6 +8355,11 @@ grokvardecl (tree type,
else
DECL_INTERFACE_KNOWN (decl) = 1;
if (DECL_NAME (decl)
&& MAIN_NAME_P (DECL_NAME (decl))
&& CP_DECL_CONTEXT (decl) == global_namespace)
error ("cannot declare %<::main%> to be a global variable");
/* Check that the variable can be safely declared as a concept.
Note that this also forbids explicit specializations. */
if (conceptp)

View File

@ -1,6 +1,12 @@
2015-08-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67065
* g++.dg/other/pr67065.C: New.
2015-08-20 Simon Dardis <simon.dardis@imgtec.com>
* gcc.target/mips/inline-memcpy-1.c: Test for inline expansion of memcpy.
* gcc.target/mips/inline-memcpy-1.c: Test for inline expansion of
memcpy.
* gcc.target/mips/inline-memcpy-2.c: Ditto.
* gcc.target/mips/inline-memcpy-3.c: Ditto.
* gcc.target/mips/inline-memcpy-4.c: Ditto.

View File

@ -0,0 +1,3 @@
// PR c++/67065
int main; // { dg-error "cannot declare" }