aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/c-family/ChangeLog16
-rw-r--r--gcc/c-family/c-common.c12
-rw-r--r--gcc/c-family/c-common.h6
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/cxx-pretty-print.c3
-rw-r--r--gcc/cp/parser.c5
-rw-r--r--gcc/cp/semantics.c10
8 files changed, 41 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e4e733..cf18334 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -2587,8 +2587,6 @@
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>
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 01b6ba7..7fa7331 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+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
@@ -48,6 +53,11 @@
* 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
@@ -56,15 +66,15 @@
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.
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index a04801e..8fc68eb 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -437,6 +437,10 @@ const struct c_common_resword c_common_reswords[] =
{ "__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 },
@@ -444,17 +448,12 @@ const struct c_common_resword c_common_reswords[] =
{ "__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 },
@@ -466,6 +465,7 @@ const struct c_common_resword c_common_reswords[] =
{ "__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 },
diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h
index 420b877..7136b01 100644
--- a/gcc/c-family/c-common.h
+++ b/gcc/c-family/c-common.h
@@ -135,9 +135,9 @@ enum rid
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 */
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a425e75..1660e1f 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+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
diff --git a/gcc/cp/cxx-pretty-print.c b/gcc/cp/cxx-pretty-print.c
index 18e4266..2f392de 100644
--- a/gcc/cp/cxx-pretty-print.c
+++ b/gcc/cp/cxx-pretty-print.c
@@ -394,8 +394,11 @@ pp_cxx_id_expression (cxx_pretty_printer *pp, tree t)
__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
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 4e085ab..cf9286a 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -3274,8 +3274,11 @@ cp_parser_translation_unit (cp_parser* parser)
__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:
@@ -3601,12 +3604,12 @@ cp_parser_primary_expression (cp_parser *parser,
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. */
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index f1f3121..56d2411 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -5165,6 +5165,9 @@ trait_expr_value (cp_trait_kind kind, tree type1, tree type2)
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));
@@ -5180,9 +5183,6 @@ trait_expr_value (cp_trait_kind kind, tree type1, tree type2)
case CPTK_IS_UNION:
return (type_code1 == UNION_TYPE);
- case CPTK_IS_LITERAL_TYPE:
- return (literal_type_p (type1));
-
default:
gcc_unreachable ();
return false;
@@ -5227,11 +5227,11 @@ finish_trait_expr (cp_trait_kind kind, tree type1, tree type2)
|| 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)
@@ -5271,11 +5271,11 @@ finish_trait_expr (cp_trait_kind kind, tree type1, tree type2)
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);