diff options
author | Tim Northover <tnorthover@apple.com> | 2017-08-09 14:56:48 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2017-08-09 14:56:48 +0000 |
commit | 442707be84f5e5b20bf3d489a2d1423c8f06b4eb (patch) | |
tree | 3390f047516676710e24c6e4efa36a2e7d2f8c30 /include/clang/Basic/DiagnosticLexKinds.td | |
parent | 8a6b859dbc103eda94a2df347385ccc553a8d081 (diff) | |
download | clang-442707be84f5e5b20bf3d489a2d1423c8f06b4eb.tar.gz |
Reapply Sema: allow imaginary constants via GNU extension if UDL overloads not present.
C++14 added user-defined literal support for complex numbers so that you
can write something like "complex<double> val = 2i". However, there is
an existing GNU extension supporting this syntax and interpreting the
result as a _Complex type.
This changes parsing so that such literals are interpreted in terms of
C++14's operators if an overload is present but otherwise falls back to
the original GNU extension.
(We now have more robust diagnostics for implicit conversions so the
libc++ test that caused the original revert still passes).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310478 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/DiagnosticLexKinds.td')
-rw-r--r-- | include/clang/Basic/DiagnosticLexKinds.td | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/include/clang/Basic/DiagnosticLexKinds.td b/include/clang/Basic/DiagnosticLexKinds.td index d6de5c04a7..40bd06ef3d 100644 --- a/include/clang/Basic/DiagnosticLexKinds.td +++ b/include/clang/Basic/DiagnosticLexKinds.td @@ -173,8 +173,6 @@ def warn_char_constant_too_large : Warning< def err_multichar_utf_character_literal : Error< "Unicode character literals may not contain multiple characters">; def err_exponent_has_no_digits : Error<"exponent has no digits">; -def ext_imaginary_constant : Extension< - "imaginary constants are a GNU extension">, InGroup<GNUImaginaryConstant>; def err_hex_constant_requires : Error< "hexadecimal floating %select{constant|literal}0 requires " "%select{an exponent|a significand}1">; |