mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	General: Make ignoring a discarded return value an error
Allows our CI to catch more potential bugs. This also removes the [[nodiscard]] attribute of IOFile's Open member function. There are cases where a file may want to be opened, but have the status of it checked at a later time.
This commit is contained in:
		
							parent
							
								
									7dcf4c0018
								
							
						
					
					
						commit
						26547d3e3b
					
				@ -32,7 +32,6 @@ if (MSVC)
 | 
			
		||||
    # /Zc:inline          - Let codegen omit inline functions in object files
 | 
			
		||||
    # /Zc:throwingNew     - Let codegen assume `operator new` (without std::nothrow) will never return null
 | 
			
		||||
    add_compile_options(
 | 
			
		||||
        /W3
 | 
			
		||||
        /MP
 | 
			
		||||
        /Zi
 | 
			
		||||
        /Zo
 | 
			
		||||
@ -43,6 +42,10 @@ if (MSVC)
 | 
			
		||||
        /Zc:externConstexpr
 | 
			
		||||
        /Zc:inline
 | 
			
		||||
        /Zc:throwingNew
 | 
			
		||||
 | 
			
		||||
        # Warnings
 | 
			
		||||
        /W3
 | 
			
		||||
        /we4834 # Discarding return value of function with 'nodiscard' attribute
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # /GS- - No stack buffer overflow checks
 | 
			
		||||
@ -56,6 +59,7 @@ else()
 | 
			
		||||
        -Werror=implicit-fallthrough
 | 
			
		||||
        -Werror=missing-declarations
 | 
			
		||||
        -Werror=reorder
 | 
			
		||||
        -Werror=unused-result
 | 
			
		||||
        -Wextra
 | 
			
		||||
        -Wmissing-declarations
 | 
			
		||||
        -Wno-attributes
 | 
			
		||||
 | 
			
		||||
@ -232,7 +232,7 @@ public:
 | 
			
		||||
 | 
			
		||||
    void Swap(IOFile& other) noexcept;
 | 
			
		||||
 | 
			
		||||
    [[nodiscard]] bool Open(const std::string& filename, const char openmode[], int flags = 0);
 | 
			
		||||
    bool Open(const std::string& filename, const char openmode[], int flags = 0);
 | 
			
		||||
    bool Close();
 | 
			
		||||
 | 
			
		||||
    template <typename T>
 | 
			
		||||
 | 
			
		||||
@ -16,16 +16,23 @@
 | 
			
		||||
// Call directly after the command or use the error num.
 | 
			
		||||
// This function might change the error code.
 | 
			
		||||
std::string GetLastErrorMsg() {
 | 
			
		||||
    static const std::size_t buff_size = 255;
 | 
			
		||||
    static constexpr std::size_t buff_size = 255;
 | 
			
		||||
    char err_str[buff_size];
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, GetLastError(),
 | 
			
		||||
                   MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), err_str, buff_size, nullptr);
 | 
			
		||||
    return std::string(err_str, buff_size);
 | 
			
		||||
#elif defined(__GLIBC__) && (_GNU_SOURCE || (_POSIX_C_SOURCE < 200112L && _XOPEN_SOURCE < 600))
 | 
			
		||||
    // Thread safe (GNU-specific)
 | 
			
		||||
    const char* str = strerror_r(errno, err_str, buff_size);
 | 
			
		||||
    return std::string(str);
 | 
			
		||||
#else
 | 
			
		||||
    // Thread safe (XSI-compliant)
 | 
			
		||||
    strerror_r(errno, err_str, buff_size);
 | 
			
		||||
    const int success = strerror_r(errno, err_str, buff_size);
 | 
			
		||||
    if (success != 0) {
 | 
			
		||||
        return {};
 | 
			
		||||
    }
 | 
			
		||||
    return std::string(err_str);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    return std::string(err_str, buff_size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user