Exit is declared to be 'noreturn' function, but GCC sees
that the empty function will return. Therefore, GCC flags
a warning.
To work-around this, we use a function pointer, along with
a cast to force the code to think that a 'noreturn' function
is being called.
Signed-off-by: jljusten
Reviewed-by: qlong
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11609
6f19259b-4bc3-4df7-8a09-
765794883524
\r
}\r
\r
+#ifdef __GNUC__\r
+\r
+typedef\r
+VOID\r
+(EFIAPI *NoReturnFuncPtr)(\r
+ VOID\r
+ ) __attribute__((__noreturn__));\r
+\r
+\r
+STATIC\r
+VOID\r
+EFIAPI\r
+NopFunction (\r
+ VOID\r
+ )\r
+{\r
+}\r
+\r
+\r
void exit (int e)\r
{\r
+ NoReturnFuncPtr NoReturnFunc;\r
+\r
+ NoReturnFunc = (NoReturnFuncPtr) NopFunction;\r
\r
+ NoReturnFunc ();\r
}\r
\r
+#else\r
+\r
+void exit (int e)\r
+{\r
+}\r
+\r
+#endif\r
+\r
int fclose (FILE *f)\r
{\r
return 0;\r