This is a follow up on D61634 and the last step to implement http://lists.llvm.org/pipermail/llvm-dev/2019-April/131973.html
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 45245 Build 46989: arc lint + arc unit
Event Timeline
clang/lib/Sema/SemaChecking.cpp | ||
---|---|---|
1653 | SemaBuiltinConstantArg. Or actually, you should probably use "I" in Builtins.def. |
clang/docs/LanguageExtensions.rst | ||
---|---|---|
2252 | This is in the wrong section of the documentation. We could constant-evaluate __builtin_memcpy_inline, I guess, but that isn't the primary purpose, and your patch doesn't implement constant evaluation anyway. Might make sense to add a new section, if no existing section makes sense. |
clang/lib/Sema/SemaChecking.cpp | ||
---|---|---|
1655 | You can EvaluateKnownConstInt here, instead of isIntegerConstantExpr. |
clang/docs/LanguageExtensions.rst | ||
---|---|---|
2252 | I added a new memory builtins section. Let me know what you think. |
Sorry about the delayed response, I was traveling.
clang/docs/LanguageExtensions.rst | ||
---|---|---|
2229 | Not sure putting "memcpy" in this list makes sense. We did add support for constant-evaluating memcpy, but it was separately from the others, so the description of the feature detection is wrong. | |
2252 | Makes sense. |
- Remove unrelated memcpy in documentation
clang/docs/LanguageExtensions.rst | ||
---|---|---|
2229 | Actually this is unrelated to this patch. The documentation is missing memcpy as a string builtin. It should go in a separate patch though. |
clang/test/Sema/builtins-memcpy-inline.c | ||
---|---|---|
8 | It appears that the expected-warning check here is guarded by the #if as well. Moving it after the #endif results in a failing test. I noticed this as I was trying to use has_feature(builtin_memcpy_inline), but it somehow does not work, even though the compiler clearly supports __builtin_memcpy_inline. Any idea what's wrong with the __has_feature test? Thanks! |
clang/test/Sema/builtins-memcpy-inline.c | ||
---|---|---|
8 | Should be __has_builtin, I think? __has_feature only applies to features defined in clang/include/clang/Basic/Features.def. |
clang/test/Sema/builtins-memcpy-inline.c | ||
---|---|---|
8 | Thx for noticing. I'll send a patch to update the test. |
clang/test/Sema/builtins-memcpy-inline.c | ||
---|---|---|
8 | Submitted as rG12c8e3632edda3bc640867ba326b52b5b2220a57 |
Not sure putting "memcpy" in this list makes sense. We did add support for constant-evaluating memcpy, but it was separately from the others, so the description of the feature detection is wrong.