You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
3.2 KiB
98 lines
3.2 KiB
From ff47ab3b90333bdfaa40b86cb548e92a01787345 Mon Sep 17 00:00:00 2001 |
|
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> |
|
Date: Thu, 25 Aug 2011 11:26:24 +0200 |
|
Subject: [PATCH] Do not split decimal float suffix from constant |
|
|
|
N1312 draft of ISO/IEC WDTR24732 defines additional floating types |
|
with given suffixes: |
|
|
|
_Decimal32 DF, df |
|
_Decimal64 DD, dd |
|
_Decimal128 DL, dl |
|
|
|
These suffixes must stick on numeric part of the constant as classic |
|
float or long float does. |
|
--- |
|
regression/TEST | 3 ++- |
|
regression/input/float-constant-suffix.c | 13 +++++++++++++ |
|
regression/standard/float-constant-suffix.c | 13 +++++++++++++ |
|
src/lexi.c | 9 +++++++++ |
|
4 files changed, 37 insertions(+), 1 deletions(-) |
|
create mode 100644 regression/input/float-constant-suffix.c |
|
create mode 100644 regression/standard/float-constant-suffix.c |
|
|
|
diff --git a/regression/TEST b/regression/TEST |
|
index c860ef2..1402ddf 100755 |
|
--- a/regression/TEST |
|
+++ b/regression/TEST |
|
@@ -35,7 +35,8 @@ EXAMPLES="do.c else.c for.c func-def.c lshift.c ncs.c \ |
|
|
|
BUGS="case-label.c one-line-1.c one-line-2.c one-line-3.c \ |
|
one-line-4.c struct-decl.c sizeof-in-while.c line-break-comment.c \ |
|
- macro.c enum.c elif.c nested.c wrapped-string.c minus_predecrement.c" |
|
+ macro.c enum.c elif.c nested.c wrapped-string.c minus_predecrement.c \ |
|
+ float-constant-suffix.c" |
|
|
|
INDENTSRC="args.c backup.h backup.c dirent_def.h globs.c indent.h \ |
|
indent.c indent_globs.h io.c lexi.c memcpy.c parse.c pr_comment.c \ |
|
diff --git a/regression/input/float-constant-suffix.c b/regression/input/float-constant-suffix.c |
|
new file mode 100644 |
|
index 0000000..58f5310 |
|
--- /dev/null |
|
+++ b/regression/input/float-constant-suffix.c |
|
@@ -0,0 +1,13 @@ |
|
+float foo = 1.0F; |
|
+float foo = 1.0f; |
|
+double foo = 1.0; |
|
+double foo = 1.0; |
|
+long double foo = 1.0L; |
|
+long double foo = 1.0l; |
|
+ |
|
+_Decimal32 foo = 1.0DF; |
|
+_Decimal32 foo = 1.0df; |
|
+_Decimal64 foo = 1.0DD; |
|
+_Decimal64 foo = 1.0dd; |
|
+_Decimal128 foo = 1.0DL; |
|
+_Decimal128 foo = 1.0dl; |
|
diff --git a/regression/standard/float-constant-suffix.c b/regression/standard/float-constant-suffix.c |
|
new file mode 100644 |
|
index 0000000..58f5310 |
|
--- /dev/null |
|
+++ b/regression/standard/float-constant-suffix.c |
|
@@ -0,0 +1,13 @@ |
|
+float foo = 1.0F; |
|
+float foo = 1.0f; |
|
+double foo = 1.0; |
|
+double foo = 1.0; |
|
+long double foo = 1.0L; |
|
+long double foo = 1.0l; |
|
+ |
|
+_Decimal32 foo = 1.0DF; |
|
+_Decimal32 foo = 1.0df; |
|
+_Decimal64 foo = 1.0DD; |
|
+_Decimal64 foo = 1.0dd; |
|
+_Decimal128 foo = 1.0DL; |
|
+_Decimal128 foo = 1.0dl; |
|
diff --git a/src/lexi.c b/src/lexi.c |
|
index abc2bfa..eafb65e 100644 |
|
--- a/src/lexi.c |
|
+++ b/src/lexi.c |
|
@@ -330,6 +330,15 @@ extern codes_ty lexi(void) |
|
{ |
|
buf_ptr++; |
|
} |
|
+ else if (*buf_ptr == 'D' || *buf_ptr == 'd') |
|
+ { |
|
+ if (buf_ptr[1] == 'F' || buf_ptr[1] == 'f' || |
|
+ buf_ptr[1] == 'D' || buf_ptr[1] == 'd' || |
|
+ buf_ptr[1] == 'L' || buf_ptr[1] == 'l') |
|
+ { |
|
+ buf_ptr+=2; |
|
+ } |
|
+ } |
|
else |
|
{ |
|
while (*buf_ptr == 'U' || *buf_ptr == 'u' || *buf_ptr == 'L' || *buf_ptr == 'l') |
|
-- |
|
1.7.6 |
|
|
|
|