From 53283adb24765a7afb4d6298661c3c1a8d6f5601 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 2 Nov 2009 14:20:34 +0100 Subject: include/libbb.h: mark malloc-returning functions with GCC attribute function old new delta ash_main 1336 1365 +29 readcmd 1062 1072 +10 add_split_dependencies 707 717 +10 rtnl_talk 539 548 +9 normalize 165 174 +9 xmalloc_optname_optval 583 590 +7 test_main 247 253 +6 insert_bg_job 366 371 +5 dname_enc 391 395 +4 nslookup_main 165 168 +3 ifplugd_main 1099 1102 +3 tftpd_main 493 495 +2 make_new_session 413 415 +2 localcmd 274 276 +2 date_main 696 698 +2 tee_main 317 318 +1 setvar 183 184 +1 hash_find 233 234 +1 xrtnl_dump_filter 400 399 -1 prepend_new_eth_table 297 295 -2 unpack_Z_stream 1229 1226 -3 read_line_input 4823 4820 -3 do_load 523 520 -3 udhcp_run_script 669 665 -4 mkfs_vfat_main 1609 1605 -4 rtnl_rtprot_initialize 70 65 -5 procps_scan 1842 1835 -7 read_opt 873 865 -8 ifupdown_main 2133 2125 -8 mkfs_ext2_main 2492 2482 -10 logread_main 503 492 -11 svlogd_main 1441 1429 -12 rewrite 1032 1018 -14 fbsplash_main 917 903 -14 str2sockaddr 431 405 -26 unpack_lzma_stream 2705 2677 -28 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 18/18 up/down: 106/-163) Total: -57 bytes Signed-off-by: Denys Vlasenko --- include/platform.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include/platform.h') diff --git a/include/platform.h b/include/platform.h index 67b04f8cb..54bc27d5b 100644 --- a/include/platform.h +++ b/include/platform.h @@ -60,6 +60,15 @@ #define UNUSED_PARAM __attribute__ ((__unused__)) #define NORETURN __attribute__ ((__noreturn__)) +/* "The malloc attribute is used to tell the compiler that a function + * may be treated as if any non-NULL pointer it returns cannot alias + * any other pointer valid when the function returns. This will often + * improve optimization. Standard functions with this property include + * malloc and calloc. realloc-like functions have this property as long + * as the old pointer is never referred to (including comparing it + * to the new pointer) after the function returns a non-NULL value." + */ +#define RETURNS_MALLOC __attribute__ ((malloc)) #define PACKED __attribute__ ((__packed__)) #define ALIGNED(m) __attribute__ ((__aligned__(m))) -- cgit v1.2.3