lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <4786883E.30604@tiscali.nl> Date: Thu, 10 Jan 2008 22:03:58 +0100 From: Roel Kluin <12o3l@...cali.nl> To: Al Viro <viro@...IV.linux.org.uk> CC: Richard Knutsson <ricknu-0@...dent.ltu.se>, Mathieu Segaud <mathieu.segaud@...ala.cx>, akpm@...ux-foundation.org, linux-ext4@...r.kernel.org, linux-kernel@...r.kernel.org, linux-pcmcia@...ts.infradead.org Subject: Re: [PATCH] [Coding Style]: fs/ext{3,4}/ext{3,4}_jbd{,2}.c Al Viro wrote: > __func__ is C99, but it's not what __FUNCTION__ used to be - it's not a > string literal. 6.4.2.2(1): > > The identifier __func__ shall be implicitly declared by the translator > as if, immediately following the opening brace of each function definition, > the declaration > static const char __func__[] = "function-name"; > appeared, where function-name is the name of the lexically-enclosing function. > > IOW, it's a phase 7 (parsing and translation of translation units) and not > phase 4 (preprocessor). Practical implications are: > * _way_ fewer kludges > * it happens after phase 6 (string literal concatenation) > So __FUNCION__ " is called" within body of foo() would result in > "foo is called" while __func__ "is called" is a syntax error. > > These days old gcc __FUNCTION__ is gone; it's a macro expanding to __func__, > so behaviour does *not* match the original (see above). so if I understand correctly, this requires a fix: -- __FUNCTION__ is a macro expanding to __func__ and translated as if previously in that function was declared: static const char __func__[] = "function-name"; As is DEBUG() - when active - will produce a syntax error. Signed-off-by: Roel Kluin <12o3l@...cali.nl> --- diff --git a/drivers/pcmcia/au1000_xxs1500.c b/drivers/pcmcia/au1000_xxs1500.c index ce9d5c4..855e1d6 100644 --- a/drivers/pcmcia/au1000_xxs1500.c +++ b/drivers/pcmcia/au1000_xxs1500.c @@ -56,7 +56,7 @@ #define PCMCIA_IRQ AU1000_GPIO_4 #if 0 -#define DEBUG(x,args...) printk(__FUNCTION__ ": " x,##args) +#define DEBUG(x, args...) printk("%s: ", __func__, x, ##args) #else #define DEBUG(x,args...) #endif - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists