2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
- * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
- * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
* doc/extend.texi: Document __underlying_type.
2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
+2011-05-15 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * c-common.c (c_common_reswords): Reorder.
+ * c-common.h (rid): Likewise.
+
2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
* c-common.c (def_fn_type): Don't call build_function_type, call
* c-ppoutput.c (maybe_print_line): Always optimize newlines
for output size with -P.
+2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * c-common.c (struct c_common_resword): Add __underlying_type.
+ * c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
+
2011-04-20 Jim Meyering <meyering@redhat.com>
* c-format.c (init_dollar_format_checking): Remove useless
2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
* c-objc.h (objc_get_interface_ivars): Removed.
- (objc_detect_field_duplicates): New.
+ (objc_detect_field_duplicates): New.
* stub-objc.c: Likewise.
-
+
2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
* stub-objc.c (objc_declare_protocols): Renamed to
objc_declare_protocol.
* c-objc.h: Likewise.
-
+
2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
* stub-objc.c (objc_declare_class): Updated argument name.
{ "__has_trivial_copy", RID_HAS_TRIVIAL_COPY, D_CXXONLY },
{ "__has_trivial_destructor", RID_HAS_TRIVIAL_DESTRUCTOR, D_CXXONLY },
{ "__has_virtual_destructor", RID_HAS_VIRTUAL_DESTRUCTOR, D_CXXONLY },
+ { "__imag", RID_IMAGPART, 0 },
+ { "__imag__", RID_IMAGPART, 0 },
+ { "__inline", RID_INLINE, 0 },
+ { "__inline__", RID_INLINE, 0 },
{ "__int128", RID_INT128, 0 },
{ "__is_abstract", RID_IS_ABSTRACT, D_CXXONLY },
{ "__is_base_of", RID_IS_BASE_OF, D_CXXONLY },
{ "__is_convertible_to", RID_IS_CONVERTIBLE_TO, D_CXXONLY },
{ "__is_empty", RID_IS_EMPTY, D_CXXONLY },
{ "__is_enum", RID_IS_ENUM, D_CXXONLY },
+ { "__is_literal_type", RID_IS_LITERAL_TYPE, D_CXXONLY },
{ "__is_pod", RID_IS_POD, D_CXXONLY },
{ "__is_polymorphic", RID_IS_POLYMORPHIC, D_CXXONLY },
{ "__is_standard_layout", RID_IS_STD_LAYOUT, D_CXXONLY },
{ "__is_trivial", RID_IS_TRIVIAL, D_CXXONLY },
{ "__is_union", RID_IS_UNION, D_CXXONLY },
- { "__is_literal_type", RID_IS_LITERAL_TYPE, D_CXXONLY },
- { "__underlying_type", RID_UNDERLYING_TYPE, D_CXXONLY },
- { "__imag", RID_IMAGPART, 0 },
- { "__imag__", RID_IMAGPART, 0 },
- { "__inline", RID_INLINE, 0 },
- { "__inline__", RID_INLINE, 0 },
{ "__label__", RID_LABEL, 0 },
{ "__null", RID_NULL, 0 },
{ "__real", RID_REALPART, 0 },
{ "__thread", RID_THREAD, 0 },
{ "__typeof", RID_TYPEOF, 0 },
{ "__typeof__", RID_TYPEOF, 0 },
+ { "__underlying_type", RID_UNDERLYING_TYPE, D_CXXONLY },
{ "__volatile", RID_VOLATILE, 0 },
{ "__volatile__", RID_VOLATILE, 0 },
{ "alignof", RID_ALIGNOF, D_CXXONLY | D_CXX0X | D_CXXWARN },
RID_IS_ABSTRACT, RID_IS_BASE_OF,
RID_IS_CONVERTIBLE_TO, RID_IS_CLASS,
RID_IS_EMPTY, RID_IS_ENUM,
- RID_IS_POD, RID_IS_POLYMORPHIC,
- RID_IS_STD_LAYOUT, RID_IS_TRIVIAL,
- RID_IS_UNION, RID_IS_LITERAL_TYPE,
+ RID_IS_LITERAL_TYPE, RID_IS_POD,
+ RID_IS_POLYMORPHIC, RID_IS_STD_LAYOUT,
+ RID_IS_TRIVIAL, RID_IS_UNION,
RID_UNDERLYING_TYPE,
/* C++0x */
+2011-05-15 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * cxx-pretty-print.c: Update comment.
+ * semantics.c (trait_expr_value, finish_trait_expr):
+ Reorder the cases.
+ * parser.c (cp_parser_primary_expression): Likewise.
+
2011-05-15 Jonathan Wakely <jwakely.gcc@gmail.com>
PR c++/48994
__is_convertible_to ( type-id , type-id )
__is_empty ( type-id )
__is_enum ( type-id )
+ __is_literal_type ( type-id )
__is_pod ( type-id )
__is_polymorphic ( type-id )
+ __is_std_layout ( type-id )
+ __is_trivial ( type-id )
__is_union ( type-id ) */
static void
__is_convertible_to ( type-id , type-id )
__is_empty ( type-id )
__is_enum ( type-id )
+ __is_literal_type ( type-id )
__is_pod ( type-id )
__is_polymorphic ( type-id )
+ __is_std_layout ( type-id )
+ __is_trivial ( type-id )
__is_union ( type-id )
Objective-C++ Extension:
case RID_IS_CONVERTIBLE_TO:
case RID_IS_EMPTY:
case RID_IS_ENUM:
+ case RID_IS_LITERAL_TYPE:
case RID_IS_POD:
case RID_IS_POLYMORPHIC:
case RID_IS_STD_LAYOUT:
case RID_IS_TRIVIAL:
case RID_IS_UNION:
- case RID_IS_LITERAL_TYPE:
return cp_parser_trait_expr (parser, token->keyword);
/* Objective-C++ expressions. */
case CPTK_IS_ENUM:
return (type_code1 == ENUMERAL_TYPE);
+ case CPTK_IS_LITERAL_TYPE:
+ return (literal_type_p (type1));
+
case CPTK_IS_POD:
return (pod_type_p (type1));
case CPTK_IS_UNION:
return (type_code1 == UNION_TYPE);
- case CPTK_IS_LITERAL_TYPE:
- return (literal_type_p (type1));
-
default:
gcc_unreachable ();
return false;
|| kind == CPTK_IS_CONVERTIBLE_TO
|| kind == CPTK_IS_EMPTY
|| kind == CPTK_IS_ENUM
+ || kind == CPTK_IS_LITERAL_TYPE
|| kind == CPTK_IS_POD
|| kind == CPTK_IS_POLYMORPHIC
|| kind == CPTK_IS_STD_LAYOUT
|| kind == CPTK_IS_TRIVIAL
- || kind == CPTK_IS_LITERAL_TYPE
|| kind == CPTK_IS_UNION);
if (kind == CPTK_IS_CONVERTIBLE_TO)
case CPTK_HAS_VIRTUAL_DESTRUCTOR:
case CPTK_IS_ABSTRACT:
case CPTK_IS_EMPTY:
+ case CPTK_IS_LITERAL_TYPE:
case CPTK_IS_POD:
case CPTK_IS_POLYMORPHIC:
case CPTK_IS_STD_LAYOUT:
case CPTK_IS_TRIVIAL:
- case CPTK_IS_LITERAL_TYPE:
if (!check_trait_type (type1))
{
error ("incomplete type %qT not allowed", type1);