diff options
Diffstat (limited to 'contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td')
-rw-r--r-- | contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td | 90 |
1 files changed, 63 insertions, 27 deletions
diff --git a/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td b/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td index 3764a4091546..73437b217b18 100644 --- a/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -28,10 +28,6 @@ def ext_extra_struct_semi : Extension< def ext_extra_ivar_semi : Extension< "extra ';' inside instance variable list">; -def auto_storage_class : ExtWarn< - "'auto' storage class specifier is redundant and will be " - "removed in future releases">; - def ext_duplicate_declspec : Extension<"duplicate '%0' declaration specifier">; def ext_plain_complex : ExtWarn< "plain '_Complex' requires a type specifier; assuming '_Complex double'">; @@ -57,7 +53,7 @@ def ext_c99_variable_decl_in_for_loop : Extension< def ext_c99_compound_literal : Extension< "compound literals are a C99-specific feature">; def ext_enumerator_list_comma : Extension< - "commas at the end of enumerator lists are a %select{C99|C++0x}0-specific " + "commas at the end of enumerator lists are a %select{C99|C++11}0-specific " "feature">; def err_enumerator_list_missing_comma : Error< "missing ',' between enumerators">; @@ -68,12 +64,15 @@ def ext_ms_enum_fixed_underlying_type : Extension< InGroup<Microsoft>; def ext_c1x_generic_selection : Extension< - "generic selections are a C1X-specific feature">; + "generic selections are a C1X-specific feature">, InGroup<C1X>; def err_duplicate_default_assoc : Error< "duplicate default generic association">; def note_previous_default_assoc : Note< "previous default generic association is here">; +def ext_c1x_alignas : Extension< + "_Alignas is a C1X-specific feature">, InGroup<C1X>; + def ext_gnu_indirect_goto : Extension< "use of GNU indirect-goto extension">, InGroup<GNU>; def ext_gnu_address_of_label : Extension< @@ -188,16 +187,26 @@ def err_invalid_reference_qualifier_application : Error< def err_illegal_decl_reference_to_reference : Error< "%0 declared as a reference to a reference">; def ext_rvalue_reference : ExtWarn< - "rvalue references are a C++0x extension">, InGroup<CXX0x>; + "rvalue references are a C++11 extension">, InGroup<CXX11>; def ext_ref_qualifier : ExtWarn< - "reference qualifiers on functions are a C++0x extension">, InGroup<CXX0x>; + "reference qualifiers on functions are a C++11 extension">, InGroup<CXX11>; def ext_inline_namespace : ExtWarn< - "inline namespaces are a C++0x feature">, InGroup<CXX0x>; + "inline namespaces are a C++11 feature">, InGroup<CXX11>; def err_generalized_initializer_lists : Error< - "generalized initializer lists are a C++0x extension unsupported in Clang">; + "generalized initializer lists are a C++11 extension unsupported in Clang">; def ext_generalized_initializer_lists : ExtWarn< - "generalized initializer lists are a C++0x extension unsupported in Clang">, - InGroup<CXX0x>; + "generalized initializer lists are a C++11 extension unsupported in Clang">, + InGroup<CXX11>; +def ext_auto_type_specifier : ExtWarn< + "'auto' type specifier is a C++11 extension">, InGroup<CXX11>; +def warn_auto_storage_class : Warning< + "'auto' storage class specifier is redundant and incompatible with C++11">, + InGroup<CXX11Compat>; +def ext_auto_storage_class : ExtWarn< + "'auto' storage class specifier is not permitted in C++11, and will not " + "be supported in future releases">; +def ext_for_range : ExtWarn< + "range-based for loop is a C++11 extension">, InGroup<CXX11>; def err_argument_required_after_attribute : Error< "argument required after attribute">; def err_missing_param : Error<"expected parameter declarator">; @@ -219,6 +228,9 @@ def err_typename_invalid_storageclass : Error< "type name does not allow storage class to be specified">; def err_typename_invalid_functionspec : Error< "type name does not allow function specifier to be specified">; +def err_typename_identifiers_only : Error< + "typename is allowed for identifiers only">; + def err_invalid_decl_spec_combination : Error< "cannot combine with previous '%0' declaration specifier">; def err_invalid_vector_decl_spec_combination : Error< @@ -250,7 +262,7 @@ def err_unexected_colon_in_nested_name_spec : Error< def err_bool_redeclaration : Error< "redeclaration of C++ built-in type 'bool'">; def ext_c1x_static_assert : Extension< - "_Static_assert is a C1X-specific feature">; + "_Static_assert is a C1X-specific feature">, InGroup<C1X>; /// Objective-C parser diagnostics def err_expected_minus_or_plus : Error< @@ -342,6 +354,8 @@ def err_destructor_template_id : Error< "destructor name %0 does not refer to a template">; def err_default_arg_unparsed : Error< "unexpected end of default argument expression">; +def err_parser_impl_limit_overflow : Error< + "parser recursion limit reached, program too complex">, DefaultFatal; // C++ derived classes def err_dup_virtual : Error<"duplicate 'virtual' in base specifier">; @@ -357,10 +371,15 @@ def err_default_delete_in_multiple_declaration : Error< "'= %select{default|delete}0' is a function definition and must occur in a " "standalone declaration">; +def warn_cxx98_compat_alignas : Warning<"'alignas' is incompatible with C++98">, + InGroup<CXX98Compat>, DefaultIgnore; +def warn_cxx98_compat_attribute : Warning< + "attributes are incompatible with C++98">, + InGroup<CXX98Compat>, DefaultIgnore; def err_cxx0x_attribute_forbids_arguments : Error< - "C++0x attribute '%0' cannot have an argument list">; + "C++11 attribute '%0' cannot have an argument list">; def err_cxx0x_attribute_requires_arguments : Error< - "C++0x attribute '%0' must have an argument list">; + "C++1 attribute '%0' must have an argument list">; def err_attributes_not_allowed : Error<"an attribute list cannot appear here">; /// C++ Templates @@ -385,7 +404,7 @@ def err_two_right_angle_brackets_need_space : Error< "a space is required between consecutive right angle brackets (use '> >')">; def warn_cxx0x_right_shift_in_template_arg : Warning< "use of right-shift operator ('>>') in template argument will require " - "parentheses in C++0x">; + "parentheses in C++11">; def err_multiple_template_declarators : Error< "%select{|a template declaration|an explicit template specialization|" "an explicit template instantiation}0 can " @@ -446,31 +465,31 @@ def err_missing_whitespace_digraph : Error< " which forms the digraph '<:' (aka '[') and a ':', did you mean '< ::'?">; def warn_deleted_function_accepted_as_extension: ExtWarn< - "deleted function definition accepted as a C++0x extension">, InGroup<CXX0x>; + "deleted function definition accepted as a C++11 extension">, InGroup<CXX11>; def warn_defaulted_function_accepted_as_extension: ExtWarn< - "defaulted function definition accepted as a C++0x extension">, - InGroup<CXX0x>; + "defaulted function definition accepted as a C++11 extension">, + InGroup<CXX11>; -// C++0x in-class member initialization +// C++11 in-class member initialization def warn_nonstatic_member_init_accepted_as_extension: ExtWarn< - "in-class initialization of non-static data member accepted as a C++0x extension">, - InGroup<CXX0x>; + "in-class initialization of non-static data member accepted as a C++11 extension">, + InGroup<CXX11>; def err_bitfield_member_init: Error< "bitfield member cannot have an in-class initializer">; def err_incomplete_array_member_init: Error< "array bound cannot be deduced from an in-class initializer">; -// C++0x alias-declaration +// C++11 alias-declaration def ext_alias_declaration : ExtWarn< - "alias declarations accepted as a C++0x extension">, InGroup<CXX0x>; + "alias declarations accepted as a C++11 extension">, InGroup<CXX11>; def err_alias_declaration_not_identifier : Error< "name defined in alias declaration must be an identifier">; def err_alias_declaration_specialization : Error< "%select{partial specialization|explicit specialization|explicit instantiation}0 of alias templates is not permitted">; -// C++0x override control +// C++11 override control def ext_override_control_keyword : Extension< - "'%0' keyword accepted as a C++0x extension">, InGroup<CXX0x>; + "'%0' keyword accepted as a C++11 extension">, InGroup<CXX11>; def err_duplicate_virt_specifier : Error< "class member already marked '%0'">; @@ -487,6 +506,15 @@ def err_paren_sizeof_parameter_pack : Error< def err_sizeof_parameter_pack : Error< "expected parenthesized parameter pack name in 'sizeof...' expression">; +// C++11 lambda expressions +def err_expected_comma_or_rsquare : Error< + "expected ',' or ']' in lambda capture list">; +def err_this_captured_by_reference : Error< + "'this' cannot be captured by reference">; +def err_expected_capture : Error< + "expected variable name or 'this' in lambda capture list">; +def err_expected_lambda_body : Error<"expected body of lambda expression">; + // Availability attribute def err_expected_version : Error< "expected a version of the form 'major[.minor[.subminor]]'">; @@ -559,6 +587,14 @@ def err_seh___except_filter : Error< def err_seh___finally_block : Error< "%0 only allowed in __finally block">; - + } // end of Parse Issue category. + +let CategoryName = "Modules Issue" in { +def err_module_expected_ident : Error< + "expected a module name after '__import_module__'">; +def err_module_expected_semi : Error< + "expected a semicolon name after module name">; +} + } // end of Parser diagnostics |