mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-26 15:21:51 -08:00
Use ATTRIBUTE_MAY_ALIAS where alias violations are likely
In particular, alias violations are likely for the return values of dlsym(3), which get cast around arbitrarily. * src/emacs-module.c (Fmodule_load): Use ATTRIBUTE_MAY_ALIAS.
This commit is contained in:
parent
366e25a6d1
commit
9be8b2bf1d
2 changed files with 8 additions and 5 deletions
11
src/dynlib.h
11
src/dynlib.h
|
|
@ -24,11 +24,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
|
||||
typedef void *dynlib_handle_ptr;
|
||||
dynlib_handle_ptr dynlib_open (const char *path);
|
||||
void *dynlib_sym (dynlib_handle_ptr h, const char *sym);
|
||||
typedef struct dynlib_function_ptr_nonce *(*dynlib_function_ptr) (void);
|
||||
dynlib_function_ptr dynlib_func (dynlib_handle_ptr h, const char *sym);
|
||||
const char *dynlib_error (void);
|
||||
int dynlib_close (dynlib_handle_ptr h);
|
||||
const char *dynlib_error (void);
|
||||
|
||||
ATTRIBUTE_MAY_ALIAS void *dynlib_sym (dynlib_handle_ptr h, const char *sym);
|
||||
|
||||
typedef struct dynlib_function_ptr_nonce *(ATTRIBUTE_MAY_ALIAS *dynlib_function_ptr) (void);
|
||||
dynlib_function_ptr dynlib_func (dynlib_handle_ptr h, const char *sym);
|
||||
|
||||
/* Sets *FILE to the file name from which PTR was loaded, and *SYM to
|
||||
its symbol name. If the file or symbol name could not be
|
||||
determined, set the corresponding argument to NULL. */
|
||||
|
|
|
|||
|
|
@ -658,7 +658,7 @@ funcall_module (Lisp_Object function, ptrdiff_t nargs, Lisp_Object *arglist)
|
|||
initialize_environment (&pub, &priv);
|
||||
|
||||
USE_SAFE_ALLOCA;
|
||||
emacs_value *args;
|
||||
ATTRIBUTE_MAY_ALIAS emacs_value *args;
|
||||
if (plain_values)
|
||||
args = (emacs_value *) arglist;
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue