|
163 | 163 | (defmethod configure-unit (configuration (unit (eql :base)))
|
164 | 164 | "Add base cflags and ldflags."
|
165 | 165 | (message :emph "Configuring base")
|
| 166 | + ;; Some explanation as to the warnings we allow: |
| 167 | + ;; invalid-offsetof means we use offsetof on non-standard-layout classes. |
| 168 | + ;; This is I think required for precise GC, and should be okay since we're |
| 169 | + ;; clang-only and clang lets us do this. |
| 170 | + ;; mismatched-tags means we sometimes declare classes in one place with |
| 171 | + ;; "struct" and some with "class". This is okay in C++, but the Microsoft |
| 172 | + ;; ABI apparently mangles names differently for some ungodly reason. |
| 173 | + ;; To keep things consistent we'd probably have to track struct vs. class |
| 174 | + ;; in the scraper codegen. |
| 175 | + ;; deprecated-enum-enum-conversion is triggered by Clang's own source code |
| 176 | + ;; for the time being. This conversion is only deprecated as of C++20, so |
| 177 | + ;; clang has probably just not kept up. |
| 178 | + ;; The othere warnings I'm not sure about. |
166 | 179 | (append-cflags configuration
|
167 | 180 | (format nil "-Wall -Wno-return-type-c-linkage ~
|
168 | 181 | -Wno-invalid-offsetof -Wno-inconsistent-missing-override ~
|
169 | 182 | -Wno-mismatched-tags -Wno-overloaded-virtual ~
|
| 183 | +-Wno-deprecated-enum-enum-conversion ~ |
170 | 184 | -Wno-delete-non-abstract-non-virtual-dtor"))
|
171 | 185 | (loop for variant in (variants configuration)
|
172 | 186 | do (append-cflags variant (format nil "-I~a" (variant-bitcode-name variant)))
|
|
0 commit comments