kees added a comment. Thanks for working on this!
Doing test builds with the Linux kernel correctly detects a number of trailing arrays that were being treated as flexible arrays (and need to be fixed in the kernel). This is exactly what was expected and wanted. :) ================ Comment at: clang/include/clang/Basic/LangOptions.def:425 LANGOPT(MatrixTypes, 1, 0, "Enable or disable the builtin matrix type") +LANGOPT(StrictFlexArrays, 1, 0, "Rely on strict definition of flexible arrays") ---------------- I think this option should likely also affect the logic in `-fsanitize=bounds` too, though I think that could be a separate change. Fixing `__bos` is more important. :) ================ Comment at: clang/test/CodeGen/object-size-flex-array.c:27 + float f; + double c[2]; +} foo2_t; ---------------- Perhaps add some additional tests for "not a trailing array" here too, just for completeness? ``` typedef struct { double c[0]; float f; } fooM0_t; typedef struct { double c[1]; float f; } fooM1_t; typedef struct { double c[2]; float f; } fooM2_t; ``` ================ Comment at: clang/test/CodeGen/object-size-flex-array.c:34 + // CHECK: ret i32 % + // CHECK-STRICT: ret i32 % + return OBJECT_SIZE_BUILTIN(f->c, 1); ---------------- Shouldn't this explicitly return -1? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126864/new/ https://reviews.llvm.org/D126864 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits