aaron.ballman added inline comments. ================ Comment at: docs/ItaniumMangleAbiTags.rst:2 @@ +1,3 @@ +======== +Abi Tags +======== ---------------- ABI tags (since it's an acronym). Elsewhere as well.
================ Comment at: docs/ItaniumMangleAbiTags.rst:30 @@ +29,3 @@ + +All tags that are "active" on a <unqualified-name> are emitted after the +<unqualified-name>, before <template-args> or <discriminator>, and are part of ---------------- an <unqualified-name> ================ Comment at: docs/ItaniumMangleAbiTags.rst:49 @@ +48,3 @@ + +A namespace has never any active tags; for types (class / struct / union / +enum) the explicit tags are the active tags. ---------------- A namespace does not have any active tags. ================ Comment at: docs/ItaniumMangleAbiTags.rst:50 @@ +49,3 @@ +A namespace has never any active tags; for types (class / struct / union / +enum) the explicit tags are the active tags. + ---------------- Comma after "enum)". ================ Comment at: docs/ItaniumMangleAbiTags.rst:52 @@ +51,3 @@ + +For variables and functions the active tags are the explicit tags plus any +"required tags" which are not in the "available tags" set: ---------------- Comma after "functions". ================ Comment at: docs/ItaniumMangleAbiTags.rst:68 @@ +67,3 @@ +Otherwise the function requires any implicit or explicit tag used in the name +for the return type. + ---------------- Code examples for these might be useful for the reader. ================ Comment at: docs/ItaniumMangleAbiTags.rst:79 @@ +78,3 @@ +All tags used in the prefix and in the template arguments for a name are +available; for functions also all tags from the <bare-function-type> (which +might include the return type for template functions) are available. ---------------- Separate into two sentences instead of using a semicolon. "Also, for functions, all tags from the..." ================ Comment at: docs/ItaniumMangleAbiTags.rst:83 @@ +82,3 @@ +For <local-name>s all active tags used in the local part (<function- +encoding>) are available, but not implicit tags which were not active! + ---------------- Replace the ! with a . Also, an example might be useful for the reader. ================ Comment at: docs/ItaniumMangleAbiTags.rst:89 @@ +88,3 @@ +Example: a cast operator to std::string (which is +std::__cxx11::basic_string<...>) will use 'cxx11' as active tag, as it is +required from the return type `std::string` but not available. ---------------- as an active tag. ================ Comment at: include/clang/Basic/AttrDocs.td:1965 @@ +1964,3 @@ +The ``abi_tag`` attribute can be applied to a function, variable, class or +inline namespace declaration to modify mangled name of the entity. It allows +to distinguish different versions of the same entity but with different ABI ---------------- to modify the mangled name ================ Comment at: include/clang/Basic/AttrDocs.td:1966 @@ +1965,3 @@ +inline namespace declaration to modify mangled name of the entity. It allows +to distinguish different versions of the same entity but with different ABI +version supported. For example, newer version of a class could have more or less ---------------- the ability to distinguish between different versions ================ Comment at: include/clang/Basic/AttrDocs.td:1967 @@ +1966,3 @@ +to distinguish different versions of the same entity but with different ABI +version supported. For example, newer version of a class could have more or less +data members and thus have different size. Using the ``abi_tag`` attribute it is ---------------- versions supported. a newer version of a class could have a different set of data members ================ Comment at: include/clang/Basic/AttrDocs.td:1968 @@ +1967,3 @@ +version supported. For example, newer version of a class could have more or less +data members and thus have different size. Using the ``abi_tag`` attribute it is +possible to have different mangled name for a global variable of the class type. ---------------- a different size. Comma after attribute. ================ Comment at: include/clang/Basic/AttrDocs.td:1969 @@ +1968,3 @@ +data members and thus have different size. Using the ``abi_tag`` attribute it is +possible to have different mangled name for a global variable of the class type. +Therefor old code could keep using old manged name and new code will use new ---------------- names ================ Comment at: include/clang/Basic/AttrDocs.td:1970 @@ +1969,3 @@ +possible to have different mangled name for a global variable of the class type. +Therefor old code could keep using old manged name and new code will use new +mangled name with tags. ---------------- Therefore, (note the comma) the old mangled name will use the new ================ Comment at: include/clang/Basic/DiagnosticSemaKinds.td:2465 @@ -2465,1 +2464,3 @@ + "variables, enums, fields and typedefs|" + "structs, classes, variables, functions and inline namespaces}1">, InGroup<IgnoredAttributes>; ---------------- Comma after functions. ================ Comment at: include/clang/Basic/DiagnosticSemaKinds.td:4179 @@ +4178,3 @@ +def err_abi_tag_on_redeclaration : Error< + "cannot add 'abi_tag' attribute in redeclaration">; +def err_new_abi_tag_on_redeclaration : Error< ---------------- in a redeclaration http://reviews.llvm.org/D17567 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits