Xazax-hun wrote:

Hey!

Thanks for looking into this!

Did you actually encounter this call in the wild? The reason I ask, because 
their definition looks like this in the current version of `sal.h`:

```
#ifndef __analysis_assume // [
#ifdef _PREFAST_ // [
#define __analysis_assume(expr) __assume(expr)
#else // ][
#define __analysis_assume(expr)
#endif // ]
#endif // ]

#ifndef _Analysis_assume_ // [
#ifdef _PREFAST_ // [
#define _Analysis_assume_(expr) __assume(expr)
#else // ][
#define _Analysis_assume_(expr)
#endif // ]
#endif // ]
```

The basic idea is, when MSVC's analyzer is invoked, `_PREFAST_` is defined, and 
these macros should expand to `__assume(expr)`. This makes me a bit surprised 
if the original names are present in the preprocessed code.

There is no difference between `__analysis_assume` and `_Analysis_assume_`. The 
former is following the naming conventions in SAL 1, the latter is following 
the conventions of SAL 2. The latter is preferred in user code, but MSVC's 
toolchain still supports both spellings. 

https://github.com/llvm/llvm-project/pull/80456
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to