emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 27bb4de72b * Port cleanup attribute to Oracle Studio 12.5


From: Paul Eggert
Subject: Re: 27bb4de72b * Port cleanup attribute to Oracle Studio 12.5
Date: Wed, 14 Jun 2017 11:25:52 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0

On 06/14/2017 03:29 AM, Philipp Stephani wrote:

the commit message says "The C compiler should check the cleanup attribute in the next line anyway." But that's not the case: unknown attributes are silently ignored, at least in Clang. The verify(__has_attribute(cleanup)) or equivalent is absolutely required here. Can we revert that commit?

No, because the 'verify' breaks the build with Oracle Studio 12.5, where __has_attribute works only inside preprocessor conditionals. I installed the attached patch, which checks for __attribute__ (cleanup) in a different way. But while we're on the subject, wouldn't it be better if emacs-module.c were made to work (albeit perhaps less efficiently) even on compilers that do not support this nonstandard C extension?

Another thing. Have you had a chance to think about related questions I asked about recently installed portability changes? Here are the URLs:

http://lists.gnu.org/archive/html/emacs-devel/2017-06/msg00225.html

http://lists.gnu.org/archive/html/emacs-devel/2017-06/msg00226.html

Since then I see that you installed another patch (commit 32d8dba625fc50ccbe28e35afcf1f0529d611e00) to pacify Clang on macOS; this patch unfortunately could cause trouble on non-POSIX platforms where rlim_t is signed. Pacifying Clang shouldn't be at the cost of portability or unnecessary complexity.

And I'm still puzzled as to why you're getting the Clang warnings but I am not. Are you using an older Clang? Are you passing it extra warning options?

Attachment: 0001-Port-cleanup-check-to-Oracle-Studio-12.5.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]