Re: Why is the kfree() argument const?
- From: Johannes Weiner <hannes@xxxxxxxxxxxx>
- Date: Thu, 17 Jan 2008 00:13:04 +0100
Hi,
Christoph Lameter <clameter@xxxxxxx> writes:
On Wed, 16 Jan 2008, Johannes Weiner wrote:
So if I got it right and you actually modify the memory you only got a
const pointer to, you reach a level where you _have to_ break this
policy and cast to a non-const pointer, as it is currently done in
kfree(). No?
Correct and we have gcc 4.2 currently spitting out warnings because of
casting to non const. Any idea how to convince gcc that this is okay?
Just for the record, this really seems to be a gcc bug, I can not
explain this otherwise:
$ cat test.c
#include <stdio.h>
static void test(void *p)
{
char *v = p;
puts(v);
}
int main(void)
{
const char foo[] = "foo";
test((void *)foo);
return 0;
}
$ gcc -Wall test.c -o test
$ gcc -Wall -O test.c -o test
test.c: In function 'main':
test.c:12: warning: passing argument 1 of 'test' discards qualifiers from pointer target type
$ gcc -Wall -O -fno-inline test.c -o test
$
gcc is version 4.2.2.
Hannes
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- References:
- Why is the kfree() argument const?
- From: Johannes Weiner
- Re: Why is the kfree() argument const?
- From: Linus Torvalds
- Re: Why is the kfree() argument const?
- From: Johannes Weiner
- Re: Why is the kfree() argument const?
- From: Christoph Lameter
- Why is the kfree() argument const?
- Prev by Date: Re: [Bluez-devel] Oops involving RFCOMM and sysfs
- Next by Date: [PATCH 00/22] ide: even more IDE probing code rework
- Previous by thread: Re: Why is the kfree() argument const?
- Next by thread: Re: Why is the kfree() argument const?
- Index(es):
Relevant Pages
|
Loading