rorth wrote:
I've run a `sparc-sun-solaris2.11` 2-stage `Debug` build with this patch. The
build itself went well (with the exception of an unrelated failure to link
`libomp.so`), but test results are still terrible with 455 failures. But it's
still massive improvement compared to before.
However, when trying an `i386-pc-solaris2.11` `Debug` build, I ran into a build
failure due to this patch:
```
FAILED: tools/clang/lib/CodeGen/CMakeFiles/obj.clangCodeGen.dir/CGBuiltin.cpp.o
[...]
In file included from
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CGBuiltin.cpp:13:
In file included from
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CGBuiltin.h:12:
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CodeGenFunction.h:951:24:
error: static assertion failed due to requirement 'alignof((anonymous
namespace)::CallObjCArcUse) == alignof(clang::CodeGen::RawAddress)': Cleanup
will be allocated on misaligned address
951 | (alignof(T) == alignof(RawAddress)),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CodeGenFunction.h:924:14:
note: in instantiation of function template specialization
'clang::CodeGen::CodeGenFunction::pushCleanupAfterFullExprWithActiveFlag<(anonymous
namespace)::CallObjCArcUse, llvm::Value *>' requested here
924 | return pushCleanupAfterFullExprWithActiveFlag<T>(
| ^
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CGBuiltin.cpp:2269:13: note:
in instantiation of function template specialization
'clang::CodeGen::CodeGenFunction::pushCleanupAfterFullExpr<(anonymous
namespace)::CallObjCArcUse, llvm::Value *>' requested here
2269 | pushCleanupAfterFullExpr<CallObjCArcUse>(Cleanup, ArgVal);
| ^
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CodeGenFunction.h:951:35:
note: expression evaluates to '8 == 4'
951 | (alignof(T) == alignof(RawAddress)),
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CodeGenFunction.h:951:24:
error: static assertion failed due to requirement
'alignof(clang::CodeGen::EHScopeStack::ConditionalCleanup<(anonymous
namespace)::CallObjCArcUse, llvm::Value *>) ==
alignof(clang::CodeGen::RawAddress)': Cleanup will be allocated on misaligned
address
951 | (alignof(T) == alignof(RawAddress)),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CodeGenFunction.h:935:5:
note: in instantiation of function template specialization
'clang::CodeGen::CodeGenFunction::pushCleanupAfterFullExprWithActiveFlag<clang::CodeGen::EHScopeStack::ConditionalCleanup<(anonymous
namespace)::CallObjCArcUse, llvm::Value *>,
std::tuple<llvm::PointerIntPair<llvm::Value *, 1, bool>>>' requested here
935 | pushCleanupAfterFullExprWithActiveFlag<CleanupType>(Kind,
ActiveFlag,
| ^
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CGBuiltin.cpp:2269:13: note:
in instantiation of function template specialization
'clang::CodeGen::CodeGenFunction::pushCleanupAfterFullExpr<(anonymous
namespace)::CallObjCArcUse, llvm::Value *>' requested here
2269 | pushCleanupAfterFullExpr<CallObjCArcUse>(Cleanup, ArgVal);
| ^
/vol/llvm/src/llvm-project/local/clang/lib/CodeGen/CodeGenFunction.h:951:35:
note: expression evaluates to '8 == 4'
951 | (alignof(T) == alignof(RawAddress)),
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
```
Besides, I think it would be clearer to use `alignas(uint64_t)` instead of a
magic constant.
https://github.com/llvm/llvm-project/pull/152866
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits