================
@@ -39,10 +39,15 @@ namespace {
 // Name of the "errno" variable.
 // FIXME: Is there a system where it is not called "errno" but is a variable?
 const char *ErrnoVarName = "errno";
+
 // Names of functions that return a location of the "errno" value.
 // FIXME: Are there other similar function names?
-const char *ErrnoLocationFuncNames[] = {"__errno_location", "___errno",
-                                        "__errno", "_errno", "__error"};
+CallDescriptionSet ErrnoLocationCalls{
+    {CDM::SimpleFunc, {"__errno_location"}, 0, 0},
+    {CDM::SimpleFunc, {"___errno"}, 0, 0},
+    {CDM::SimpleFunc, {"__errno"}, 0, 0},
+    {CDM::SimpleFunc, {"_errno"}, 0, 0},
+    {CDM::SimpleFunc, {"__error"}, 0, 0}};
----------------
NagyDonat wrote:

I updated them to `CLibrary` because it's slightly better for this usecase (it 
won't match functions within a user-defined C++ namespace).

By the way, note that the `CLibrary` matching mode intentionally **doesn't 
check whether the function was declared within a system header**, because 
"being in a system header" is a very fragile property -- consider e.g. a case 
when somebody tries to submit a preprocessed source file for bug reproduction 
and the declaration becomes part of the (tweaked, minified) source file. I also 
suspect that there might be some unusual/internal functions (like these ones) 
whose declaration has no location, so it isn't in a system header...

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

Reply via email to