C++ : Adjust warning for misplaced attributes.
authorIain Sandoe <iain@sandoe.co.uk>
Fri, 27 Nov 2020 23:02:45 +0000 (23:02 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Tue, 1 Dec 2020 11:25:03 +0000 (11:25 +0000)
This removes the reference to Objective-C++ for the warning that
attributes may not be placed before linkage specifications.  It also
adds a note that they may be placed after that.

gcc/cp/ChangeLog:

* parser.c (cp_parser_declaration): Add a not about where
attributes may be placed.

gcc/cp/parser.c

index 63a2c962d862e9420246e54066f06f6ad63abef1..939e73f89b5b181796db3ac7928d8066c3ccec02 100644 (file)
@@ -13567,9 +13567,12 @@ cp_parser_declaration (cp_parser* parser, tree prefix_attrs)
          /* We might have already been here.  */
          if (!c_dialect_objc ())
            {
+             location_t where = get_finish (t2->location);
              warning_at (token1->location, OPT_Wattributes, "attributes are"
-                         " only permitted in this position for Objective-C++,"
-                         " ignored");
+                         " not permitted in this position");
+             where = linemap_position_for_loc_and_offset (line_table,
+                                                          where, 1);
+             inform (where, "attributes may be inserted here");
              attributes = NULL_TREE;
            }
          token1 = t1;