aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-09-13 13:51:33 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-07 21:03:12 -0700
commit44f9f07e8346f31ec70884b8ecbc120cf4f6d3a5 (patch)
tree6c9ccac503688aec58d5bed9560efb3bc0cd4616
parent6a9a969e71981ba02e805c552f6b540c6cd0eb8e (diff)
downloadsparse-dev-44f9f07e8346f31ec70884b8ecbc120cf4f6d3a5.tar.gz
Morten made us almost -Wwrite-strings clean. Go the extra mile.
The only remaining place was the magic constant "0" "1" number token generated by "defined(xxx)". And since we never actually modify number tokens (which would have broken that code anyway), let's just make that const'ness explicit.
-rw-r--r--Makefile2
-rw-r--r--pre-process.c10
-rw-r--r--token.h2
3 files changed, 8 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 083a2dcc..4f29ec17 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
CC=gcc
-CFLAGS=-O -g -Wall
+CFLAGS=-O -g -Wall -Wwrite-strings
LDFLAGS=-g
AR=ar
diff --git a/pre-process.c b/pre-process.c
index 2481ffc1..e2045ff7 100644
--- a/pre-process.c
+++ b/pre-process.c
@@ -95,7 +95,7 @@ static void replace_with_integer(struct token *token, unsigned int val)
static void replace_with_defined(struct token *token)
{
- static char *string[] = { "0", "1" };
+ static const char *string[] = { "0", "1" };
int defined = 0;
if (token_type(token) != TOKEN_IDENT)
warning(token->pos, "operator \"defined\" requires an identifier");
@@ -382,11 +382,13 @@ static int merge(struct token *left, struct token *right)
left->pos.noexpand = 0;
return 1;
- case TOKEN_NUMBER:
+ case TOKEN_NUMBER: {
+ char *number = __alloc_bytes(strlen(buffer) + 1);
+ memcpy(number, buffer, strlen(buffer) + 1);
token_type(left) = TOKEN_NUMBER; /* could be . + num */
- left->number = __alloc_bytes(strlen(buffer) + 1);
- memcpy(left->number, buffer, strlen(buffer) + 1);
+ left->number = number;
return 1;
+ }
case TOKEN_SPECIAL:
if (buffer[2] && buffer[3])
diff --git a/token.h b/token.h
index ecb8ea01..d4defd7e 100644
--- a/token.h
+++ b/token.h
@@ -150,7 +150,7 @@ struct token {
struct position pos;
struct token *next;
union {
- char *number;
+ const char *number;
struct ident *ident;
unsigned int special;
struct string *string;