This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fix for __builtin_size_t


bootstrapped and tested on x86_64-unknown-linux-gnu.

2004-07-07 Jan Beulich <jbeulich@novell.com>

	* c-common.c (c_common_nodes_and_builtins): Use size_type_node
	instead of sizenode for __builtin_size_t.

testsuite:
2004-07-07 Jan Beulich <jbeulich@novell.com>

	* gcc.dg/builtin-size_t: New test for bogus warning when using
	__builtin_size_t.
	* gcc.dg/format/builtin_size_t: Dito.

---
/home/jbeulich/src/gcc/mainline/2004-07-05.10.09/gcc/c-common.c	2004-07-02
15:13:11.000000000 +0200
+++ 2004-07-05.10.09/gcc/c-common.c	2004-07-06 17:16:41.227547552
+0200
@@ -2979,7 +2979,7 @@
 
   lang_hooks.decls.pushdecl
     (build_decl (TYPE_DECL, get_identifier ("__builtin_size_t"),
-		 sizetype));
+		 size_type_node));
 
   if (TREE_CODE (va_list_type_node) == ARRAY_TYPE)
     {
---
/home/jbeulich/src/gcc/mainline/2004-07-05.10.09/gcc/testsuite/gcc.dg/builtin-size_t.c	1970-01-01
01:00:00.000000000 +0100
+++
2004-07-05.10.09/gcc/testsuite/gcc.dg/builtin-size_t.c	2004-05-28
13:45:11.000000000 +0200
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+
+typedef __builtin_size_t size_t;
+
+size_t large = (size_t)1 & ~(((size_t)0x10) - 1); /* { dg-bogus "large
integer implicitly truncated" } */
+
+size_t test(size_t size) {
+	return size & ~(((size_t)0x10) - 1); /* { dg-bogus "large
integer implicitly truncated" } */
+}
---
/home/jbeulich/src/gcc/mainline/2004-07-05.10.09/gcc/testsuite/gcc.dg/format/builtin_size_t.c	1970-01-01
01:00:00.000000000 +0100
+++
2004-07-05.10.09/gcc/testsuite/gcc.dg/format/builtin_size_t.c	2004-06-01
16:55:00.000000000 +0200
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-Wformat" } */
+
+typedef __builtin_size_t size_t;
+
+int printf(const char*, ...);
+
+void test1(size_t sz) {
+	printf("%zu\n", sz); /* { dg-bogus "format" } */
+}
+
+typedef size_t other_t;
+
+void test2(other_t sz) {
+	printf("%zu\n", sz); /* { dg-bogus "format" } */
+}

Attachment: gcc-mainline-size_t.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]