The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Что не так c noreturn функцией?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Что не так c noreturn функцией?"  +/
Сообщение от Павел Отредиезemail (?), 22-Фев-21, 12:22 
_exit.c:

#include <sys/types.h>
#include <sys/syscall.h>

void __syscall(quad_t n, ...);

void _exit(int status)
{
    __syscall(SYS_exit, status);
}



$ cc -c -Wall _exit.c
_exit.c:31:1: warning: function declared 'noreturn' should not return
      [-Winvalid-noreturn]
}
^
1 warning generated.

Вроде функция вызывает другую noreturn функцию, предупреждений быть не должно, а есть... Я не понимаю почему, помогите плиз.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Что не так c noreturn функцией?"  +/
Сообщение от yesreturn (?), 22-Фев-21, 21:35 
А __syscall точно noreturn? `syscall` и `_syscall` точно не noreturn, про ваш `__syscall` ничего не знаю) Если что, добавьте вечный цикл в конце функции, например просто while(1);
Ответить | Правка | Наверх | Cообщить модератору

2. "Что не так c noreturn функцией?"  +/
Сообщение от DeadMustdieemail (??), 28-Фев-21, 17:24 
> void _exit(int status)

Переопределять функцию стандартной библиотеки - не самая лучшая идея.
Пример реализации из состава glibc малость сложнее вашего:
https://github.com/lattera/glibc/blob/master/sysdeps/unix/sy...

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Ideco
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру