clang does not support static initialization of flexible array members. This appears to be a rarely used extension, but could be implemented pending user demand. clang does not support __builtin_va_arg_pack/__builtin_va_arg_pack_len. This is used rarely, but in some potentially interesting...
The tiarmclang 4.0.2.LTS compiler has been updated to assert that if a function contains an empty infinite loop, it does not necessarily mean that the application will be “parked” in that loop indefinitely. For example, an external event triggering an interrupt may occur that diverts the ...
if (llvm::sys::Process::FixupStandardFileDescriptors()) return 1; SmallVector<const char *, 256> argv; llvm::SpecificBumpPtrAllocator<char> ArgAllocator; std::error_code EC = llvm::sys::Process::GetArgumentVector( argv, llvm::makeArrayRef(argv_, argc_), ArgAllocator); if (EC) { llv...
-Warc-unsafe-retained-assign assigning %select{array literal|dictionary literal|numeric literal|boxed expression|should not happen|block literal}0 to a weak %select{property|variable}1 object will be released after assignment -Warc-unsafe-retained-assign assigning retained object to %select{weak|unsafe...
Same as “inline”, except it does not implies “empty”: i.e. top level empty functions are not merged either. Copyclass Foo { void f() { foo(); } }; void f() { foo(); } void f() { } SFS_Empty (in configuration: Empty) Only merge empty functions. Copyvoid f() {} ...
makes it impossible for eithergetSize()orintArrto not beconstexpr—a static assertion must be evaluated at compile time. Without the static assertion and theconstexprkeywords, the example could still work if it was at block scope. In that case, it would result in a variable-length array. ...
-clang-analyzer-core.uninitialized.ArraySubscript,-clang-analyzer-core.uninitialized.Assign,-clang-analyzer-core.uninitialized.Branch,-clang-analyzer-core.uninitialized.CapturedBlockVariable,-clang-analyzer-core.uninitialized.NewArraySize,-clang-analyzer-core.uninitialized.UndefReturn,-clang-analyzer-cplusplus....
1) this makes it easy to handle qualified type names (e.g., “foo::bar::baz<42>::t”) in C++ as a single “token” in the parser. 2) if the parser backtracks, the reparse does not need to redo semantic analysis to determine whether a token sequence is a variable, type, templ...
2) if the parser backtracks, the reparse does not need to redo semantic analysis to determine whether a token sequence is a variable, type, template, etc. Annotation tokens are created by the parser and reinjected into the parser’s token stream (when backtracking is enabled). Because they...
This attribute works differently in clang than it does in GCC. Specifically, clang will only trace const pointers (as above); we give up on pointers that are not marked as const. In the vast majority of cases, this is unimportant, because LLVM has support for the alloc_size attribute. Ho...