aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2019-05-10 18:00:52 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2019-05-10 18:00:52 +0000
commit67254b50a63b1a1095762fefef801a6a53ccece5 (patch)
tree540205394d161f37d0d26a2060b88df3b3c9d06e /gcc
parent7bdc7e0661dae954b919416882d5a9064a202614 (diff)
downloadgcc-67254b50a63b1a1095762fefef801a6a53ccece5.zip
gcc-67254b50a63b1a1095762fefef801a6a53ccece5.tar.gz
gcc-67254b50a63b1a1095762fefef801a6a53ccece5.tar.bz2
decl.c (grokvardecl): Use an accurate location in error message about main as a global variable.
/cp 2019-05-10 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (grokvardecl): Use an accurate location in error message about main as a global variable. /testsuite 2019-05-10 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/diagnostic/main1.C: New. From-SVN: r271070
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl.c3
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/diagnostic/main1.C1
4 files changed, 12 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4b245a2..33614ef 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
2019-05-10 Paolo Carlini <paolo.carlini@oracle.com>
+ * decl.c (grokvardecl): Use an accurate location in error message
+ about main as a global variable.
+
+2019-05-10 Paolo Carlini <paolo.carlini@oracle.com>
+
* call.c (build_call_a): Use FUNC_OR_METHOD_TYPE_P.
* cp-gimplify.c (cp_fold): Likewise.
* cp-objcp-common.c (cp_type_dwarf_attribute): Likewise.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 300c2db..a776f8f 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -9477,7 +9477,8 @@ grokvardecl (tree type,
if (DECL_NAME (decl)
&& MAIN_NAME_P (DECL_NAME (decl))
&& scope == global_namespace)
- error ("cannot declare %<::main%> to be a global variable");
+ error_at (DECL_SOURCE_LOCATION (decl),
+ "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. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ac85d09..165df13 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-05-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * g++.dg/diagnostic/main1.C: New.
+
2019-05-10 Marek Polacek <polacek@redhat.com>
PR c++/78010 - bogus -Wsuggest-override warning on final function.
diff --git a/gcc/testsuite/g++.dg/diagnostic/main1.C b/gcc/testsuite/g++.dg/diagnostic/main1.C
new file mode 100644
index 0000000..6bb0d78
--- /dev/null
+++ b/gcc/testsuite/g++.dg/diagnostic/main1.C
@@ -0,0 +1 @@
+int main __attribute__((unused)); // { dg-error "5:cannot declare" }