re PR c++/57640 (Explicit call of system literal operator complains about leading...
authorEd Smith-Rowland <3dw4rd@verizon.net>
Wed, 26 Jun 2013 03:35:54 +0000 (03:35 +0000)
committerEdward Smith-Rowland <emsr@gcc.gnu.org>
Wed, 26 Jun 2013 03:35:54 +0000 (03:35 +0000)
gcc/cp:

2013-06-25  Ed Smith-Rowland  <3dw4rd@verizon.net>

PR c++/57640
* parser.c (cp_parser_unqualified_id): Add declarator_p to checks
to trigger warning, (cp_literal_operator_id): Remove bogus TODO comment.

gcc/testsuite:

2013-06-25  Ed Smith-Rowland  <3dw4rd@verizon.net>

PR c++/57640
* g++.dg/cpp1y/pr57640.C: New.

From-SVN: r200415

gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp1y/pr57640.C [new file with mode: 0644]

index 97d7fad089ccedd9b55397672d26eec1488598bd..bd82693722cfae4669bb1fa8f58fc82ccf6e779c 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-25  Ed Smith-Rowland  <3dw4rd@verizon.net>
+
+       PR c++/57640
+       * parser.c (cp_parser_unqualified_id): Add declarator_p to checks
+       to trigger warning, (cp_literal_operator_id): Remove bogus TODO comment.
+
 2013-06-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
        * call.c (null_ptr_cst_p): Use cxx11 in lieu of cxx0x.
index f3bc27a698a60ca69e597c4bcaec966b25ce93c4..ec8ad46dd44d7aaf9c1b2a3a4c990257f79a0deb 100644 (file)
@@ -5000,7 +5000,7 @@ cp_parser_unqualified_id (cp_parser* parser,
            {
              /* 17.6.3.3.5  */
              const char *name = UDLIT_OP_SUFFIX (id);
-             if (name[0] != '_' && !in_system_header)
+             if (name[0] != '_' && !in_system_header && declarator_p)
                warning (0, "literal operator suffixes not preceded by %<_%>"
                            " are reserved for future standardization");
            }
@@ -12346,7 +12346,6 @@ cp_literal_operator_id (const char* name)
                              + strlen (name) + 10);
   sprintf (buffer, UDLIT_OP_ANSI_FORMAT, name);
   identifier = get_identifier (buffer);
-  /*IDENTIFIER_UDLIT_OPNAME_P (identifier) = 1; If we get a flag someday. */
 
   return identifier;
 }
index 911648bcf1c22e0c57c7f71a0bc1eb51ebee087d..5e1f52e0475470232cd9db908f44c9260af5e52a 100644 (file)
@@ -1,3 +1,8 @@
+2013-06-25  Ed Smith-Rowland  <3dw4rd@verizon.net>
+
+       PR c++/57640
+       * g++.dg/cpp1y/pr57640.C: New.
+
 2013-06-25  Balaji V. Iyer  <balaji.v.iyer@intel.com>
 
        PR c/57692
diff --git a/gcc/testsuite/g++.dg/cpp1y/pr57640.C b/gcc/testsuite/g++.dg/cpp1y/pr57640.C
new file mode 100644 (file)
index 0000000..e26f967
--- /dev/null
@@ -0,0 +1,8 @@
+// { dg-options -std=c++1y }
+// { dg-do compile }
+
+#include <chrono>
+
+using namespace std::literals::chrono_literals;
+
+auto blooper = operator"" min(45.0L);