linux-sparse.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Expand initializers when testing them for being constant
@ 2008-06-01 23:26 Pavel Roskin
  0 siblings, 0 replies; only message in thread
From: Pavel Roskin @ 2008-06-01 23:26 UTC (permalink / raw)
  To: linux-sparse

Signed-off-by: Pavel Roskin <proski@gnu.org>
---

 expand.c                        |    2 ++
 validation/array-size-known.c   |    9 +++++++++
 validation/array-size-unknown.c |   14 ++++++++++++++
 3 files changed, 25 insertions(+), 0 deletions(-)
 create mode 100644 validation/array-size-known.c
 create mode 100644 validation/array-size-unknown.c

diff --git a/expand.c b/expand.c
index 032f0c5..bbe8d6c 100644
--- a/expand.c
+++ b/expand.c
@@ -620,6 +620,8 @@ static int expand_dereference(struct expression *expr)
 
 		/* Const symbol with a constant initializer? */
 		if (value) {
+			expand_expression(value);
+
 			/* FIXME! We should check that the size is right! */
 			if (value->type == EXPR_VALUE) {
 				expr->type = EXPR_VALUE;
diff --git a/validation/array-size-known.c b/validation/array-size-known.c
new file mode 100644
index 0000000..8f4603a
--- /dev/null
+++ b/validation/array-size-known.c
@@ -0,0 +1,9 @@
+void foo(void);
+void foo(void) {
+	const int len = 32 + 32;
+	int buf[len];
+	buf[0] = 0;
+}
+/*
+ * check-name: Array size known at the compile time
+ */
diff --git a/validation/array-size-unknown.c b/validation/array-size-unknown.c
new file mode 100644
index 0000000..825accb
--- /dev/null
+++ b/validation/array-size-unknown.c
@@ -0,0 +1,14 @@
+extern int extra;
+void foo(void);
+void foo(void) {
+	const int len = 32 + extra;
+	int buf[len];
+	buf[0] = 0;
+}
+/*
+ * check-name: Array size unknown at the compile time
+ *
+ * check-error-start
+array-size-unknown.c:5:10: error: bad constant expression
+ * check-error-end
+ */

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2008-06-01 23:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-01 23:26 [PATCH] Expand initializers when testing them for being constant Pavel Roskin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).