Clang: Difference between revisions
Jump to navigation
Jump to search
Enable all warnings:
(→Tips) |
(→Tips) |
||
Line 1: | Line 1: | ||
== Links == |
|||
=== Clang on Windows === |
|||
* https://github.com/mstorsjo/llvm-mingw |
|||
: The best port of LLVM/Clang on Windows I tried. Does not require Visual Studio for linking. Support UBSAN (at least 64-bit target). |
|||
* MSYS2 |
|||
: MSYS2 now provides clang 9.0 packages. No deps on VS but they don't provide UBSAN apparently. |
|||
== Tips == |
== Tips == |
||
=== Get Stack Pointer === |
=== Get Stack Pointer === |
Revision as of 23:13, 17 November 2019
Links
Clang on Windows
- The best port of LLVM/Clang on Windows I tried. Does not require Visual Studio for linking. Support UBSAN (at least 64-bit target).
- MSYS2
- MSYS2 now provides clang 9.0 packages. No deps on VS but they don't provide UBSAN apparently.
Tips
Get Stack Pointer
Use this macro [1]:
#define current_stack_pointer ({ \
register unsigned long esp asm("esp"); \
asm("" : "=r"(esp)); \
esp; \
})
Turn errors into warning
-Wno-error=foo Turn warning “foo” into an warning even if -Werror is specified.
Enable all warnings: -Weverything
-Weverything
means enable all current and future warnings. See Better Apps with Clang's Weverything or Wall is a Lie!