threads / patch / 26683

patchHonor HP C's noreturn attribute

Subject: [PATCH] Honor HP C's noreturn attribute

## tl;dr

4 messages between Mar 7, 2011 and Mar 8, 2011. Diffs are folded; open one to read it.

replies: 3people: 3as markdown or json

Michal Rokos· Mar 7, 2011, 12:13 UTC · lore
HP C for Integrity servers (Itanium) gained support for noreturn attribute sometime in 2006. It was released in Compiler Version A.06.10 and made available in July 2006.
The __HP_cc define detects the HP C compiler version. Precede the __GNUC__ check so it works well when compiling with HP C using -Agcc option that enables partial support for the GNU C dialect. The -Agcc defines the __GNUC__ too.
Signed-off-by: Michal Rokos <michal.rokos@nextsoft.cz>
Show changes to git-compat-util.h +4 −2
diff --git a/git-compat-util.h b/git-compat-util.h
index 9c23622..bf947b1 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -214,7 +214,10 @@ extern char *gitbasename(char *);
 #define is_dir_sep(c) ((c) == '/')
 #endif
 
-#ifdef __GNUC__
+#if __HP_cc >= 61000
+#define NORETURN __attribute__((noreturn))
+#define NORETURN_PTR
+#elif defined(__GNUC__)
 #define NORETURN __attribute__((__noreturn__))
 #define NORETURN_PTR __attribute__((__noreturn__))
 #elif defined(_MSC_VER)

--

Michal Rokos

NextSoft spol. s r.o.
Vyskočilova 1/1410
140 21 Praha 4
Czech Republic
mobile: +420 736 646 591
fax:    +420 267 224 307
e-mail: rokos@nextsoft.cz
Junio C Hamano· Mar 8, 2011, 19:00 UTC · re: Michal Rokos · lore

Re: [PATCH] Honor HP C's noreturn attribute

Michal Rokos <rokos@nextsoft.cz> writes:
Show 10 quoted lines
> HP C for Integrity servers (Itanium) gained support for noreturn
> attribute sometime in 2006. It was released in Compiler Version A.06.10
> and made available in July 2006.
>
> The __HP_cc define detects the HP C compiler version. Precede the
> __GNUC__ check so it works well when compiling with HP C using -Agcc
> option that enables partial support for the GNU C dialect. The -Agcc
> defines the __GNUC__ too.
>
> Signed-off-by: Michal Rokos <michal.rokos@nextsoft.cz>

We tend to prefer new code be appended at the end of if/elif/.../then/fi cascade when there is no strong reason to do otherwise; your log message clearly explains why this particular #if needs to come before the existing one.

I love it when people write a very readable log message to explain why the patch _has_ to be the way it is. Very good job.

Except for the overlooooooooong lines in the message, which I line-wrapped locally before applying, that is.

Thanks.
Piotr Krukowiecki· Mar 8, 2011, 19:26 UTC · re: Junio C Hamano · lore

Re: [PATCH] Honor HP C's noreturn attribute

On Tue, Mar 8, 2011 at 8:00 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 20 quoted lines
> Michal Rokos <rokos@nextsoft.cz> writes:
>
>> HP C for Integrity servers (Itanium) gained support for noreturn
>> attribute sometime in 2006. It was released in Compiler Version A.06.10
>> and made available in July 2006.
>>
>> The __HP_cc define detects the HP C compiler version. Precede the
>> __GNUC__ check so it works well when compiling with HP C using -Agcc
>> option that enables partial support for the GNU C dialect. The -Agcc
>> defines the __GNUC__ too.
>>
>> Signed-off-by: Michal Rokos <michal.rokos@nextsoft.cz>
>
> We tend to prefer new code be appended at the end of if/elif/.../then/fi
> cascade when there is no strong reason to do otherwise; your log message
> clearly explains why this particular #if needs to come before the existing
> one.
>
> I love it when people write a very readable log message to explain why the
> patch _has_ to be the way it is.  Very good job.

I liked it too, but it'd be even better to put the comment in the code IMO. I don't think anyone would check the commit to see if he can change the order of the #ifdefs ...

(So please comment in code more!)
-- 
Piotr Krukowiecki
Michal Rokos· Mar 8, 2011, 22:09 UTC · re: Junio C Hamano · lore

Re: [PATCH] Honor HP C's noreturn attribute

Dear Junio,
On 8.3.2011, at 20:00, Junio C Hamano wrote:
Show 12 quoted lines
> Michal Rokos <rokos@nextsoft.cz> writes:
> 
>> The __HP_cc define detects the HP C compiler version. Precede the
>> __GNUC__ check so it works well when compiling with HP C using -Agcc
>> option that enables partial support for the GNU C dialect. The -Agcc
>> defines the __GNUC__ too.
> 
> I love it when people write a very readable log message to explain why the
> patch _has_ to be the way it is.  Very good job.
> 
> Except for the overlooooooooong lines in the message, which I line-wrapped
> locally before applying, that is.

thank you for your review. I will try to improve overall patch and the commit log quality when sending something more.

Michal
--
Michal Rokos

NextSoft spol. s r.o. Vyskočilova 1/1410 140 21 Praha 4 Czech Republic mobile: +420 736 646 591 fax: +420 267 224 307 e-mail: rokos@nextsoft.cz

← back to recent threads