diff --git a/sphinx/domains/c.py b/sphinx/domains/c.py index 0869d69119a..c487c17d545 100644 --- a/sphinx/domains/c.py +++ b/sphinx/domains/c.py @@ -106,6 +106,7 @@ # Floating-point # -------------- |(float|double|long\s+double)(\s+(_Complex|complex|_Imaginary|imaginary))? + |(_Complex|complex|_Imaginary|imaginary)\s+(float|double|long\s+double) |_Decimal(32|64|128) # extensions |__float80|_Float64x|__float128|_Float128|__ibm128 diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index 36455c69a30..0d8aee019f1 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -349,6 +349,7 @@ # Floating-point # -------------- |(float|double|long\s+double)(\s+(_Complex|_Imaginary))? + |(_Complex|_Imaginary)\s+(float|double|long\s+double) # extensions |__float80|_Float64x|__float128|_Float128 # Integer types that could be prefixes of the previous ones @@ -482,16 +483,14 @@ 'float': 'f', 'double': 'd', 'long double': 'e', - '__float80': 'e', - '_Float64x': 'e', - '__float128': 'g', - '_Float128': 'g', - 'float _Complex': 'Cf', - 'double _Complex': 'Cd', - 'long double _Complex': 'Ce', - 'float _Imaginary': 'f', - 'double _Imaginary': 'd', - 'long double _Imaginary': 'e', + '__float80': 'e', '_Float64x': 'e', + '__float128': 'g', '_Float128': 'g', + 'float _Complex': 'Cf', '_Complex float': 'Cf', + 'double _Complex': 'Cd', '_Complex double': 'Cd', + 'long double _Complex': 'Ce', '_Complex long double': 'Ce', + 'float _Imaginary': 'f', '_Imaginary float': 'f', + 'double _Imaginary': 'd', '_Imaginary double': 'd', + 'long double _Imaginary': 'e', '_Imaginary long double': 'e', 'auto': 'Da', 'decltype(auto)': 'Dc', 'std::nullptr_t': 'Dn' diff --git a/tests/test_domain_c.py b/tests/test_domain_c.py index a9aa55687d2..0800c505962 100644 --- a/tests/test_domain_c.py +++ b/tests/test_domain_c.py @@ -306,7 +306,8 @@ def signed(t): for f in ('float', 'double', 'long double'): yield f yield from (f + " _Complex", f + " complex") - yield from (f + " _Imaginary", f + " imaginary") + yield from ("_Complex " + f, "complex " + f) + yield from ("_Imaginary " + f, "imaginary " + f) # extensions # https://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html#Floating-Types yield from ('__float80', '_Float64x',