[PATCH] D133773: [clang] fix linker executable path in test

2022-09-13 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github created this revision.
ashay-github added reviewers: alvinhochun, rnk, mstorsjo, stella.stamenova.
Herald added a project: All.
ashay-github requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

A previous patch (https://reviews.llvm.org/D132810) introduced a test
that fails on systems where the linker executable (`ld`) has a `.exe`
extension.  This patch updates the regex in the test so that lit can
look for both `ld` as well as `ld.exe`.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D133773

Files:
  clang/test/Driver/mingw-cfguard.c


Index: clang/test/Driver/mingw-cfguard.c
===
--- clang/test/Driver/mingw-cfguard.c
+++ clang/test/Driver/mingw-cfguard.c
@@ -3,7 +3,7 @@
 // NO_CF: "-cc1"
 // NO_CF-NOT: "-cfguard"
 // NO_CF-NOT: "-cfguard-no-checks"
-// NO_CF-NEXT: ld"
+// NO_CF-NEXT: ld{{(.exe)?}}"
 // NO_CF-NOT: "--guard-cf"
 // DEFAULT-NOT: "--no-guard-cf"
 // GUARD_NONE-SAME: "--no-guard-cf"
@@ -11,7 +11,7 @@
 // RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | 
FileCheck -check-prefix=GUARD_CF %s
 // GUARD_CF: "-cc1"
 // GUARD_CF-SAME: "-cfguard"
-// GUARD_CF-NEXT: ld"
+// GUARD_CF-NEXT: ld{{(.exe)?}}"
 // GUARD_CF-SAME: "--guard-cf"
 // GUARD_CF-NOT: "--no-guard-cf"
 
@@ -20,7 +20,7 @@
 // GUARD_NOCHECKS-NOT: "-cfguard"
 // GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
 // GUARD_NOCHECKS-NOT: "-cfguard"
-// GUARD_NOCHECKS-NEXT: ld"
+// GUARD_NOCHECKS-NEXT: ld{{(.exe)?}}"
 // GUARD_NOCHECKS-SAME: "--guard-cf"
 // GUARD_NOCHECKS-NOT: "--no-guard-cf"
 


Index: clang/test/Driver/mingw-cfguard.c
===
--- clang/test/Driver/mingw-cfguard.c
+++ clang/test/Driver/mingw-cfguard.c
@@ -3,7 +3,7 @@
 // NO_CF: "-cc1"
 // NO_CF-NOT: "-cfguard"
 // NO_CF-NOT: "-cfguard-no-checks"
-// NO_CF-NEXT: ld"
+// NO_CF-NEXT: ld{{(.exe)?}}"
 // NO_CF-NOT: "--guard-cf"
 // DEFAULT-NOT: "--no-guard-cf"
 // GUARD_NONE-SAME: "--no-guard-cf"
@@ -11,7 +11,7 @@
 // RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | FileCheck -check-prefix=GUARD_CF %s
 // GUARD_CF: "-cc1"
 // GUARD_CF-SAME: "-cfguard"
-// GUARD_CF-NEXT: ld"
+// GUARD_CF-NEXT: ld{{(.exe)?}}"
 // GUARD_CF-SAME: "--guard-cf"
 // GUARD_CF-NOT: "--no-guard-cf"
 
@@ -20,7 +20,7 @@
 // GUARD_NOCHECKS-NOT: "-cfguard"
 // GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
 // GUARD_NOCHECKS-NOT: "-cfguard"
-// GUARD_NOCHECKS-NEXT: ld"
+// GUARD_NOCHECKS-NEXT: ld{{(.exe)?}}"
 // GUARD_NOCHECKS-SAME: "--guard-cf"
 // GUARD_NOCHECKS-NOT: "--no-guard-cf"
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D133773: [clang] fix linker executable path in test

2022-09-13 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github updated this revision to Diff 459771.
ashay-github added a comment.

Thanks!  I updated the regex to be `ld{{.*}}"`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133773/new/

https://reviews.llvm.org/D133773

Files:
  clang/test/Driver/mingw-cfguard.c


Index: clang/test/Driver/mingw-cfguard.c
===
--- clang/test/Driver/mingw-cfguard.c
+++ clang/test/Driver/mingw-cfguard.c
@@ -3,7 +3,7 @@
 // NO_CF: "-cc1"
 // NO_CF-NOT: "-cfguard"
 // NO_CF-NOT: "-cfguard-no-checks"
-// NO_CF-NEXT: ld"
+// NO_CF-NEXT: ld{{.*}}"
 // NO_CF-NOT: "--guard-cf"
 // DEFAULT-NOT: "--no-guard-cf"
 // GUARD_NONE-SAME: "--no-guard-cf"
@@ -11,7 +11,7 @@
 // RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | 
FileCheck -check-prefix=GUARD_CF %s
 // GUARD_CF: "-cc1"
 // GUARD_CF-SAME: "-cfguard"
-// GUARD_CF-NEXT: ld"
+// GUARD_CF-NEXT: ld{{.*}}"
 // GUARD_CF-SAME: "--guard-cf"
 // GUARD_CF-NOT: "--no-guard-cf"
 
@@ -20,7 +20,7 @@
 // GUARD_NOCHECKS-NOT: "-cfguard"
 // GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
 // GUARD_NOCHECKS-NOT: "-cfguard"
-// GUARD_NOCHECKS-NEXT: ld"
+// GUARD_NOCHECKS-NEXT: ld{{.*}}"
 // GUARD_NOCHECKS-SAME: "--guard-cf"
 // GUARD_NOCHECKS-NOT: "--no-guard-cf"
 


Index: clang/test/Driver/mingw-cfguard.c
===
--- clang/test/Driver/mingw-cfguard.c
+++ clang/test/Driver/mingw-cfguard.c
@@ -3,7 +3,7 @@
 // NO_CF: "-cc1"
 // NO_CF-NOT: "-cfguard"
 // NO_CF-NOT: "-cfguard-no-checks"
-// NO_CF-NEXT: ld"
+// NO_CF-NEXT: ld{{.*}}"
 // NO_CF-NOT: "--guard-cf"
 // DEFAULT-NOT: "--no-guard-cf"
 // GUARD_NONE-SAME: "--no-guard-cf"
@@ -11,7 +11,7 @@
 // RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | FileCheck -check-prefix=GUARD_CF %s
 // GUARD_CF: "-cc1"
 // GUARD_CF-SAME: "-cfguard"
-// GUARD_CF-NEXT: ld"
+// GUARD_CF-NEXT: ld{{.*}}"
 // GUARD_CF-SAME: "--guard-cf"
 // GUARD_CF-NOT: "--no-guard-cf"
 
@@ -20,7 +20,7 @@
 // GUARD_NOCHECKS-NOT: "-cfguard"
 // GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
 // GUARD_NOCHECKS-NOT: "-cfguard"
-// GUARD_NOCHECKS-NEXT: ld"
+// GUARD_NOCHECKS-NEXT: ld{{.*}}"
 // GUARD_NOCHECKS-SAME: "--guard-cf"
 // GUARD_NOCHECKS-NOT: "--no-guard-cf"
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D133773: [clang] fix linker executable path in test

2022-09-13 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github updated this revision to Diff 459791.
ashay-github added a comment.

Updated the regex to `ld{{(.lld)?}}{{(.exe)?}}"`, so that it matches the
following sequences: `ld`, `ld.lld`, `ld.exe`, `ld.lld.exe`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133773/new/

https://reviews.llvm.org/D133773

Files:
  clang/test/Driver/mingw-cfguard.c


Index: clang/test/Driver/mingw-cfguard.c
===
--- clang/test/Driver/mingw-cfguard.c
+++ clang/test/Driver/mingw-cfguard.c
@@ -3,7 +3,7 @@
 // NO_CF: "-cc1"
 // NO_CF-NOT: "-cfguard"
 // NO_CF-NOT: "-cfguard-no-checks"
-// NO_CF-NEXT: ld"
+// NO_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // NO_CF-NOT: "--guard-cf"
 // DEFAULT-NOT: "--no-guard-cf"
 // GUARD_NONE-SAME: "--no-guard-cf"
@@ -11,7 +11,7 @@
 // RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | 
FileCheck -check-prefix=GUARD_CF %s
 // GUARD_CF: "-cc1"
 // GUARD_CF-SAME: "-cfguard"
-// GUARD_CF-NEXT: ld"
+// GUARD_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // GUARD_CF-SAME: "--guard-cf"
 // GUARD_CF-NOT: "--no-guard-cf"
 
@@ -20,7 +20,7 @@
 // GUARD_NOCHECKS-NOT: "-cfguard"
 // GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
 // GUARD_NOCHECKS-NOT: "-cfguard"
-// GUARD_NOCHECKS-NEXT: ld"
+// GUARD_NOCHECKS-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // GUARD_NOCHECKS-SAME: "--guard-cf"
 // GUARD_NOCHECKS-NOT: "--no-guard-cf"
 


Index: clang/test/Driver/mingw-cfguard.c
===
--- clang/test/Driver/mingw-cfguard.c
+++ clang/test/Driver/mingw-cfguard.c
@@ -3,7 +3,7 @@
 // NO_CF: "-cc1"
 // NO_CF-NOT: "-cfguard"
 // NO_CF-NOT: "-cfguard-no-checks"
-// NO_CF-NEXT: ld"
+// NO_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // NO_CF-NOT: "--guard-cf"
 // DEFAULT-NOT: "--no-guard-cf"
 // GUARD_NONE-SAME: "--no-guard-cf"
@@ -11,7 +11,7 @@
 // RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | FileCheck -check-prefix=GUARD_CF %s
 // GUARD_CF: "-cc1"
 // GUARD_CF-SAME: "-cfguard"
-// GUARD_CF-NEXT: ld"
+// GUARD_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // GUARD_CF-SAME: "--guard-cf"
 // GUARD_CF-NOT: "--no-guard-cf"
 
@@ -20,7 +20,7 @@
 // GUARD_NOCHECKS-NOT: "-cfguard"
 // GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
 // GUARD_NOCHECKS-NOT: "-cfguard"
-// GUARD_NOCHECKS-NEXT: ld"
+// GUARD_NOCHECKS-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // GUARD_NOCHECKS-SAME: "--guard-cf"
 // GUARD_NOCHECKS-NOT: "--no-guard-cf"
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D133773: [clang] fix linker executable path in test

2022-09-14 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github added a comment.

@alvinhochun @mstorsjo Let me know if you'd like to see more changes. With the 
new regex, the tests pass at my end as well as in the Phabricator CI.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133773/new/

https://reviews.llvm.org/D133773

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D133773: [clang] fix linker executable path in test

2022-09-14 Thread Ashay Rane via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rGf1848b0a0ed7: [clang] fix linker executable path in test 
(authored by ashay).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133773/new/

https://reviews.llvm.org/D133773

Files:
  clang/test/Driver/mingw-cfguard.c


Index: clang/test/Driver/mingw-cfguard.c
===
--- clang/test/Driver/mingw-cfguard.c
+++ clang/test/Driver/mingw-cfguard.c
@@ -3,7 +3,7 @@
 // NO_CF: "-cc1"
 // NO_CF-NOT: "-cfguard"
 // NO_CF-NOT: "-cfguard-no-checks"
-// NO_CF-NEXT: ld"
+// NO_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // NO_CF-NOT: "--guard-cf"
 // DEFAULT-NOT: "--no-guard-cf"
 // GUARD_NONE-SAME: "--no-guard-cf"
@@ -11,7 +11,7 @@
 // RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | 
FileCheck -check-prefix=GUARD_CF %s
 // GUARD_CF: "-cc1"
 // GUARD_CF-SAME: "-cfguard"
-// GUARD_CF-NEXT: ld"
+// GUARD_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // GUARD_CF-SAME: "--guard-cf"
 // GUARD_CF-NOT: "--no-guard-cf"
 
@@ -20,7 +20,7 @@
 // GUARD_NOCHECKS-NOT: "-cfguard"
 // GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
 // GUARD_NOCHECKS-NOT: "-cfguard"
-// GUARD_NOCHECKS-NEXT: ld"
+// GUARD_NOCHECKS-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // GUARD_NOCHECKS-SAME: "--guard-cf"
 // GUARD_NOCHECKS-NOT: "--no-guard-cf"
 


Index: clang/test/Driver/mingw-cfguard.c
===
--- clang/test/Driver/mingw-cfguard.c
+++ clang/test/Driver/mingw-cfguard.c
@@ -3,7 +3,7 @@
 // NO_CF: "-cc1"
 // NO_CF-NOT: "-cfguard"
 // NO_CF-NOT: "-cfguard-no-checks"
-// NO_CF-NEXT: ld"
+// NO_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // NO_CF-NOT: "--guard-cf"
 // DEFAULT-NOT: "--no-guard-cf"
 // GUARD_NONE-SAME: "--no-guard-cf"
@@ -11,7 +11,7 @@
 // RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | FileCheck -check-prefix=GUARD_CF %s
 // GUARD_CF: "-cc1"
 // GUARD_CF-SAME: "-cfguard"
-// GUARD_CF-NEXT: ld"
+// GUARD_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // GUARD_CF-SAME: "--guard-cf"
 // GUARD_CF-NOT: "--no-guard-cf"
 
@@ -20,7 +20,7 @@
 // GUARD_NOCHECKS-NOT: "-cfguard"
 // GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
 // GUARD_NOCHECKS-NOT: "-cfguard"
-// GUARD_NOCHECKS-NEXT: ld"
+// GUARD_NOCHECKS-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
 // GUARD_NOCHECKS-SAME: "--guard-cf"
 // GUARD_NOCHECKS-NOT: "--no-guard-cf"
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D131282: [mlir] fix `add_tablegen()` macro to allow installing mlir-pdll

2022-08-07 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github updated this revision to Diff 450614.
ashay-github added a comment.
Herald added subscribers: cfe-commits, sdasgup3, wenzhicui, wrengr, cota, 
teijeong, rdzhabarov, tatianashp, msifontes, jurahul, Kayjukh, grosul1, 
Joonsoo, liufengdb, aartbik, mgester, arpith-jacob, nicolasvasilache, 
antiagainst, shauheen, mehdi_amini.
Herald added projects: clang, MLIR.

Added optional `DESTINATION` argument to `add_tablegen()`.  Also updated all
invocations of the macro.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131282/new/

https://reviews.llvm.org/D131282

Files:
  clang/utils/TableGen/CMakeLists.txt
  llvm/cmake/modules/TableGen.cmake
  llvm/utils/TableGen/CMakeLists.txt
  mlir/tools/mlir-pdll/CMakeLists.txt
  mlir/tools/mlir-tblgen/CMakeLists.txt


Index: mlir/tools/mlir-tblgen/CMakeLists.txt
===
--- mlir/tools/mlir-tblgen/CMakeLists.txt
+++ mlir/tools/mlir-tblgen/CMakeLists.txt
@@ -4,7 +4,7 @@
   TableGen
 )
 
-add_tablegen(mlir-tblgen MLIR
+add_tablegen(mlir-tblgen MLIR DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   AttrOrTypeDefGen.cpp
   AttrOrTypeFormatGen.cpp
   CodeGenHelpers.cpp
Index: mlir/tools/mlir-pdll/CMakeLists.txt
===
--- mlir/tools/mlir-pdll/CMakeLists.txt
+++ mlir/tools/mlir-pdll/CMakeLists.txt
@@ -12,7 +12,7 @@
   MLIRPDLLParser
   )
 
-add_tablegen(mlir-pdll MLIR_PDLL
+add_tablegen(mlir-pdll MLIR_PDLL DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   mlir-pdll.cpp
 
   DEPENDS
Index: llvm/utils/TableGen/CMakeLists.txt
===
--- llvm/utils/TableGen/CMakeLists.txt
+++ llvm/utils/TableGen/CMakeLists.txt
@@ -2,7 +2,7 @@
 
 set(LLVM_LINK_COMPONENTS Support)
 
-add_tablegen(llvm-tblgen LLVM
+add_tablegen(llvm-tblgen LLVM DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
   AsmMatcherEmitter.cpp
   AsmWriterEmitter.cpp
   AsmWriterInst.cpp
Index: llvm/cmake/modules/TableGen.cmake
===
--- llvm/cmake/modules/TableGen.cmake
+++ llvm/cmake/modules/TableGen.cmake
@@ -140,6 +140,12 @@
 endfunction()
 
 macro(add_tablegen target project)
+  set(options "")
+  set(oneValueArgs "DESTINATION")
+  set(multiValueArgs "")
+  cmake_parse_arguments(ADD_TABLEGEN "${options}" "${oneValueArgs}"
+"${multiValueArgs}" ${ARGN})
+
   set(${target}_OLD_LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS})
   set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} TableGen)
 
@@ -149,7 +155,8 @@
 set(LLVM_ENABLE_OBJLIB ON)
   endif()
 
-  add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
+  add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB
+${ADD_TABLEGEN_UNPARSED_ARGUMENTS})
   set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
 
   set(${project}_TABLEGEN "${target}" CACHE
@@ -186,7 +193,7 @@
 endif()
   endif()
 
-  if ((${project} STREQUAL LLVM OR ${project} STREQUAL MLIR) AND NOT 
LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS)
+  if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND 
LLVM_BUILD_UTILS)
 set(export_to_llvmexports)
 if(${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
 NOT LLVM_DISTRIBUTION_COMPONENTS)
@@ -196,7 +203,7 @@
 install(TARGETS ${target}
 ${export_to_llvmexports}
 COMPONENT ${target}
-RUNTIME DESTINATION "${${project}_TOOLS_INSTALL_DIR}")
+RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}")
 if(NOT LLVM_ENABLE_IDE)
   add_llvm_install_targets("install-${target}"
DEPENDS ${target}
Index: clang/utils/TableGen/CMakeLists.txt
===
--- clang/utils/TableGen/CMakeLists.txt
+++ clang/utils/TableGen/CMakeLists.txt
@@ -1,6 +1,6 @@
 set(LLVM_LINK_COMPONENTS Support)
 
-add_tablegen(clang-tblgen CLANG
+add_tablegen(clang-tblgen CLANG DESTINATION "${CLANG_TOOLS_INSTALL_DIR}"
   ASTTableGen.cpp
   ClangASTNodesEmitter.cpp
   ClangASTPropertiesEmitter.cpp


Index: mlir/tools/mlir-tblgen/CMakeLists.txt
===
--- mlir/tools/mlir-tblgen/CMakeLists.txt
+++ mlir/tools/mlir-tblgen/CMakeLists.txt
@@ -4,7 +4,7 @@
   TableGen
 )
 
-add_tablegen(mlir-tblgen MLIR
+add_tablegen(mlir-tblgen MLIR DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   AttrOrTypeDefGen.cpp
   AttrOrTypeFormatGen.cpp
   CodeGenHelpers.cpp
Index: mlir/tools/mlir-pdll/CMakeLists.txt
===
--- mlir/tools/mlir-pdll/CMakeLists.txt
+++ mlir/tools/mlir-pdll/CMakeLists.txt
@@ -12,7 +12,7 @@
   MLIRPDLLParser
   )
 
-add_tablegen(mlir-pdll MLIR_PDLL
+add_tablegen(mlir-pdll MLIR_PDLL DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   mlir-pdll.cpp
 
   DEPENDS
Index: llvm/utils/TableGen/CMakeLists.txt
===

[PATCH] D131282: [mlir] fix `add_tablegen()` macro to allow installing mlir-pdll

2022-08-07 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github marked an inline comment as done.
ashay-github added inline comments.



Comment at: llvm/cmake/modules/TableGen.cmake:199
 COMPONENT ${target}
 RUNTIME DESTINATION "${${project}_TOOLS_INSTALL_DIR}")
 if(NOT LLVM_ENABLE_IDE)

nikic wrote:
> Hm, a problem is that this line is going to look for 
> `${MLIR_PDLL_TOOLS_INSTALL_DIR}`, so that variable would have to be set 
> (presumably to `${MLIR_TOOLS_INSTALL_DIR}`), otherwise this will end up in 
> some kind of default location. The same problem would exist for 
> `(LLDB|LIBC|LLVM_LIBC)_TOOLS_INSTALL_DIR`, all the other ones already define 
> the variable.
> 
> Defining MLIR_PDLL_TOOLS_INSTALL_DIR is possible, but does seem somewhat 
> ugly. A possibility would be to accept the install path as an argument (and 
> skip installing if not provided):
> ```
> add_tablegen(mlir-pdll MLIR_PDLL ... DESTINATION ${MLIR_TOOLS_INSTALL_DIR})
> ```
Thanks, that seems a lot more elegant than what I had before! Updated in the 
most recent version.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131282/new/

https://reviews.llvm.org/D131282

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D131282: [mlir] fix `add_tablegen()` macro to allow installing mlir-pdll

2022-08-07 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github updated this revision to Diff 450661.
ashay-github marked an inline comment as done.
ashay-github added a comment.

Simply invocation of `cmake_parse_arguments()`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131282/new/

https://reviews.llvm.org/D131282

Files:
  clang/utils/TableGen/CMakeLists.txt
  llvm/cmake/modules/TableGen.cmake
  llvm/utils/TableGen/CMakeLists.txt
  mlir/tools/mlir-pdll/CMakeLists.txt
  mlir/tools/mlir-tblgen/CMakeLists.txt


Index: mlir/tools/mlir-tblgen/CMakeLists.txt
===
--- mlir/tools/mlir-tblgen/CMakeLists.txt
+++ mlir/tools/mlir-tblgen/CMakeLists.txt
@@ -4,7 +4,7 @@
   TableGen
 )
 
-add_tablegen(mlir-tblgen MLIR
+add_tablegen(mlir-tblgen MLIR DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   AttrOrTypeDefGen.cpp
   AttrOrTypeFormatGen.cpp
   CodeGenHelpers.cpp
Index: mlir/tools/mlir-pdll/CMakeLists.txt
===
--- mlir/tools/mlir-pdll/CMakeLists.txt
+++ mlir/tools/mlir-pdll/CMakeLists.txt
@@ -12,7 +12,7 @@
   MLIRPDLLParser
   )
 
-add_tablegen(mlir-pdll MLIR_PDLL
+add_tablegen(mlir-pdll MLIR_PDLL DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   mlir-pdll.cpp
 
   DEPENDS
Index: llvm/utils/TableGen/CMakeLists.txt
===
--- llvm/utils/TableGen/CMakeLists.txt
+++ llvm/utils/TableGen/CMakeLists.txt
@@ -2,7 +2,7 @@
 
 set(LLVM_LINK_COMPONENTS Support)
 
-add_tablegen(llvm-tblgen LLVM
+add_tablegen(llvm-tblgen LLVM DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
   AsmMatcherEmitter.cpp
   AsmWriterEmitter.cpp
   AsmWriterInst.cpp
Index: llvm/cmake/modules/TableGen.cmake
===
--- llvm/cmake/modules/TableGen.cmake
+++ llvm/cmake/modules/TableGen.cmake
@@ -140,6 +140,8 @@
 endfunction()
 
 macro(add_tablegen target project)
+  cmake_parse_arguments(ADD_TABLEGEN "" "DESTINATION" "" ${ARGN})
+
   set(${target}_OLD_LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS})
   set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} TableGen)
 
@@ -149,7 +151,8 @@
 set(LLVM_ENABLE_OBJLIB ON)
   endif()
 
-  add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
+  add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB
+${ADD_TABLEGEN_UNPARSED_ARGUMENTS})
   set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
 
   set(${project}_TABLEGEN "${target}" CACHE
@@ -186,7 +189,7 @@
 endif()
   endif()
 
-  if ((${project} STREQUAL LLVM OR ${project} STREQUAL MLIR) AND NOT 
LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS)
+  if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND 
LLVM_BUILD_UTILS)
 set(export_to_llvmexports)
 if(${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
 NOT LLVM_DISTRIBUTION_COMPONENTS)
@@ -196,7 +199,7 @@
 install(TARGETS ${target}
 ${export_to_llvmexports}
 COMPONENT ${target}
-RUNTIME DESTINATION "${${project}_TOOLS_INSTALL_DIR}")
+RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}")
 if(NOT LLVM_ENABLE_IDE)
   add_llvm_install_targets("install-${target}"
DEPENDS ${target}
Index: clang/utils/TableGen/CMakeLists.txt
===
--- clang/utils/TableGen/CMakeLists.txt
+++ clang/utils/TableGen/CMakeLists.txt
@@ -1,6 +1,6 @@
 set(LLVM_LINK_COMPONENTS Support)
 
-add_tablegen(clang-tblgen CLANG
+add_tablegen(clang-tblgen CLANG DESTINATION "${CLANG_TOOLS_INSTALL_DIR}"
   ASTTableGen.cpp
   ClangASTNodesEmitter.cpp
   ClangASTPropertiesEmitter.cpp


Index: mlir/tools/mlir-tblgen/CMakeLists.txt
===
--- mlir/tools/mlir-tblgen/CMakeLists.txt
+++ mlir/tools/mlir-tblgen/CMakeLists.txt
@@ -4,7 +4,7 @@
   TableGen
 )
 
-add_tablegen(mlir-tblgen MLIR
+add_tablegen(mlir-tblgen MLIR DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   AttrOrTypeDefGen.cpp
   AttrOrTypeFormatGen.cpp
   CodeGenHelpers.cpp
Index: mlir/tools/mlir-pdll/CMakeLists.txt
===
--- mlir/tools/mlir-pdll/CMakeLists.txt
+++ mlir/tools/mlir-pdll/CMakeLists.txt
@@ -12,7 +12,7 @@
   MLIRPDLLParser
   )
 
-add_tablegen(mlir-pdll MLIR_PDLL
+add_tablegen(mlir-pdll MLIR_PDLL DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   mlir-pdll.cpp
 
   DEPENDS
Index: llvm/utils/TableGen/CMakeLists.txt
===
--- llvm/utils/TableGen/CMakeLists.txt
+++ llvm/utils/TableGen/CMakeLists.txt
@@ -2,7 +2,7 @@
 
 set(LLVM_LINK_COMPONENTS Support)
 
-add_tablegen(llvm-tblgen LLVM
+add_tablegen(llvm-tblgen LLVM DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
   AsmMatcherEmitter.cpp
   AsmWriterEmitter.cpp
   AsmWriterInst.cpp
Index: llvm/cmake/modules/TableGen.cmake
=

[PATCH] D131282: [mlir] fix `add_tablegen()` macro to allow installing mlir-pdll

2022-08-07 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github added inline comments.



Comment at: llvm/cmake/modules/TableGen.cmake:147
+  cmake_parse_arguments(ADD_TABLEGEN "${options}" "${oneValueArgs}"
+"${multiValueArgs}" ${ARGN})
+

nikic wrote:
> I think it would be fine to write this as just 
> `cmake_parse_arguments(ADD_TABLEGEN "" "OPTIONS" "" ${ARGN})`, but don't feel 
> strongly about that.
Thanks! Rewrote it as `cmake_parse_arguments(ADD_TABLEGEN "" "DESTINATION" "" 
${ARGN})`


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131282/new/

https://reviews.llvm.org/D131282

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D131282: [mlir] fix `add_tablegen()` macro to allow installing mlir-pdll

2022-08-07 Thread Ashay Rane via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGd1bb3016ddc8: [mlir] fix `add_tablegen()` macro to allow 
installing mlir-pdll (authored by ashay).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131282/new/

https://reviews.llvm.org/D131282

Files:
  clang/utils/TableGen/CMakeLists.txt
  llvm/cmake/modules/TableGen.cmake
  llvm/utils/TableGen/CMakeLists.txt
  mlir/tools/mlir-pdll/CMakeLists.txt
  mlir/tools/mlir-tblgen/CMakeLists.txt


Index: mlir/tools/mlir-tblgen/CMakeLists.txt
===
--- mlir/tools/mlir-tblgen/CMakeLists.txt
+++ mlir/tools/mlir-tblgen/CMakeLists.txt
@@ -4,7 +4,7 @@
   TableGen
 )
 
-add_tablegen(mlir-tblgen MLIR
+add_tablegen(mlir-tblgen MLIR DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   AttrOrTypeDefGen.cpp
   AttrOrTypeFormatGen.cpp
   CodeGenHelpers.cpp
Index: mlir/tools/mlir-pdll/CMakeLists.txt
===
--- mlir/tools/mlir-pdll/CMakeLists.txt
+++ mlir/tools/mlir-pdll/CMakeLists.txt
@@ -12,7 +12,7 @@
   MLIRPDLLParser
   )
 
-add_tablegen(mlir-pdll MLIR_PDLL
+add_tablegen(mlir-pdll MLIR_PDLL DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   mlir-pdll.cpp
 
   DEPENDS
Index: llvm/utils/TableGen/CMakeLists.txt
===
--- llvm/utils/TableGen/CMakeLists.txt
+++ llvm/utils/TableGen/CMakeLists.txt
@@ -2,7 +2,7 @@
 
 set(LLVM_LINK_COMPONENTS Support)
 
-add_tablegen(llvm-tblgen LLVM
+add_tablegen(llvm-tblgen LLVM DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
   AsmMatcherEmitter.cpp
   AsmWriterEmitter.cpp
   AsmWriterInst.cpp
Index: llvm/cmake/modules/TableGen.cmake
===
--- llvm/cmake/modules/TableGen.cmake
+++ llvm/cmake/modules/TableGen.cmake
@@ -140,6 +140,8 @@
 endfunction()
 
 macro(add_tablegen target project)
+  cmake_parse_arguments(ADD_TABLEGEN "" "DESTINATION" "" ${ARGN})
+
   set(${target}_OLD_LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS})
   set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} TableGen)
 
@@ -149,7 +151,8 @@
 set(LLVM_ENABLE_OBJLIB ON)
   endif()
 
-  add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
+  add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB
+${ADD_TABLEGEN_UNPARSED_ARGUMENTS})
   set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
 
   set(${project}_TABLEGEN "${target}" CACHE
@@ -186,7 +189,7 @@
 endif()
   endif()
 
-  if ((${project} STREQUAL LLVM OR ${project} STREQUAL MLIR) AND NOT 
LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS)
+  if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND 
LLVM_BUILD_UTILS)
 set(export_to_llvmexports)
 if(${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
 NOT LLVM_DISTRIBUTION_COMPONENTS)
@@ -196,7 +199,7 @@
 install(TARGETS ${target}
 ${export_to_llvmexports}
 COMPONENT ${target}
-RUNTIME DESTINATION "${${project}_TOOLS_INSTALL_DIR}")
+RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}")
 if(NOT LLVM_ENABLE_IDE)
   add_llvm_install_targets("install-${target}"
DEPENDS ${target}
Index: clang/utils/TableGen/CMakeLists.txt
===
--- clang/utils/TableGen/CMakeLists.txt
+++ clang/utils/TableGen/CMakeLists.txt
@@ -1,6 +1,6 @@
 set(LLVM_LINK_COMPONENTS Support)
 
-add_tablegen(clang-tblgen CLANG
+add_tablegen(clang-tblgen CLANG DESTINATION "${CLANG_TOOLS_INSTALL_DIR}"
   ASTTableGen.cpp
   ClangASTNodesEmitter.cpp
   ClangASTPropertiesEmitter.cpp


Index: mlir/tools/mlir-tblgen/CMakeLists.txt
===
--- mlir/tools/mlir-tblgen/CMakeLists.txt
+++ mlir/tools/mlir-tblgen/CMakeLists.txt
@@ -4,7 +4,7 @@
   TableGen
 )
 
-add_tablegen(mlir-tblgen MLIR
+add_tablegen(mlir-tblgen MLIR DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   AttrOrTypeDefGen.cpp
   AttrOrTypeFormatGen.cpp
   CodeGenHelpers.cpp
Index: mlir/tools/mlir-pdll/CMakeLists.txt
===
--- mlir/tools/mlir-pdll/CMakeLists.txt
+++ mlir/tools/mlir-pdll/CMakeLists.txt
@@ -12,7 +12,7 @@
   MLIRPDLLParser
   )
 
-add_tablegen(mlir-pdll MLIR_PDLL
+add_tablegen(mlir-pdll MLIR_PDLL DESTINATION "${MLIR_TOOLS_INSTALL_DIR}"
   mlir-pdll.cpp
 
   DEPENDS
Index: llvm/utils/TableGen/CMakeLists.txt
===
--- llvm/utils/TableGen/CMakeLists.txt
+++ llvm/utils/TableGen/CMakeLists.txt
@@ -2,7 +2,7 @@
 
 set(LLVM_LINK_COMPONENTS Support)
 
-add_tablegen(llvm-tblgen LLVM
+add_tablegen(llvm-tblgen LLVM DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
   AsmMatcherEmitter.cpp
   AsmWriterEmitter.cpp
   AsmWriterInst.cpp
Index: 

[PATCH] D154871: [clang] Satisfy clang v12

2023-07-10 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github created this revision.
ashay-github added reviewers: steakhal, xazax.hun, Szelethus.
Herald added a subscriber: martong.
Herald added a reviewer: NoQ.
Herald added a project: All.
ashay-github requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

Older versions of clang (for example, v12) throw an error when compiling
CStringChecker.cpp that the initializers for `SourceArgExpr`,
`DestinationArgExpr`, and `SizeArgExpr` are missing braces around
initialization of subobject.  Newer clang versions don't throw this
error.  This patch adds the initialization braces to satisfy clang.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D154871

Files:
  clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp

Index: clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
===
--- clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+++ clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
@@ -1372,9 +1372,9 @@
 CharKind CK) const {
   // void *memcpy(void *restrict dst, const void *restrict src, size_t n);
   // The return value is the address of the destination buffer.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   ProgramStateRef State = C.getState();
 
@@ -1387,9 +1387,9 @@
  CharKind CK) const {
   // void *mempcpy(void *restrict dst, const void *restrict src, size_t n);
   // The return value is a pointer to the byte following the last written byte.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = true;
   constexpr bool IsMempcpy = true;
@@ -1401,9 +1401,9 @@
  CharKind CK) const {
   // void *memmove(void *dst, const void *src, size_t n);
   // The return value is the address of the destination buffer.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = false;
   constexpr bool IsMempcpy = false;
@@ -1413,9 +1413,9 @@
 
 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const {
   // void bcopy(const void *src, void *dst, size_t n);
-  SourceArgExpr Src{CE->getArg(0), 0};
-  DestinationArgExpr Dest = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  SourceArgExpr Src{{CE->getArg(0), 0}};
+  DestinationArgExpr Dest = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = false;
   constexpr bool IsMempcpy = false;
@@ -1430,7 +1430,7 @@
 
   AnyArgExpr Left = {CE->getArg(0), 0};
   AnyArgExpr Right = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   ProgramStateRef State = C.getState();
   SValBuilder &Builder = C.getSValBuilder();
@@ -1698,14 +1698,14 @@
   const LocationContext *LCtx = C.getLocationContext();
 
   // Check that the destination is non-null.
-  DestinationArgExpr Dst = {CE->getArg(0), 0};
+  DestinationArgExpr Dst = {{CE->getArg(0), 0}};
   SVal DstVal = state->getSVal(Dst.Expression, LCtx);
   state = checkNonNull(C, state, Dst, DstVal);
   if (!state)
 return;
 
   // Check that the source is non-null.
-  SourceArgExpr srcExpr = {CE->getArg(1), 1};
+  SourceArgExpr srcExpr = {{CE->getArg(1), 1}};
   SVal srcVal = state->getSVal(srcExpr.Expression, LCtx);
   state = checkNonNull(C, state, srcExpr, srcVal);
   if (!state)
@@ -1736,10 +1736,11 @@
 
   // FIXME: Why do we choose the srcExpr if the access has no size?
   //  Note that the 3rd argument of the call would be the size parameter.
-  SizeArgExpr SrcExprAsSizeDummy = {srcExpr.Expression, srcExpr.ArgumentIndex};
+  SizeArgExpr SrcExprAsSizeDummy = {
+  {srcExpr.Expression, srcExpr.ArgumentIndex}};
   state = CheckOverlap(
   C, state,
-  (IsBounded ? SizeArgExpr{CE->getArg(2), 2} : SrcExprAsSizeDummy), Dst,
+  (IsBounded ? SizeArgExpr{{CE->getArg(2), 2}} : SrcExprAsSizeDummy), Dst,
   srcExpr);
 
   if (!state)
@@ -1748,7 +1749,7 @@
   // If the function is strncpy, strncat, etc... it is bounded.
   if (IsBounded) {
 // Get the max number of characters to copy.
-SizeArgExpr lenExpr = {CE->getArg(2), 2};
+SizeArgExpr lenExpr = {{CE->getArg(2), 2}};
 SVal lenVal = state->getSVal(lenExpr.Expression,

[PATCH] D154871: [clang] Satisfy clang v12

2023-07-10 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github updated this revision to Diff 538816.
ashay-github added a comment.

Rebased with main to trigger rebuild


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D154871/new/

https://reviews.llvm.org/D154871

Files:
  clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp

Index: clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
===
--- clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+++ clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
@@ -1372,9 +1372,9 @@
 CharKind CK) const {
   // void *memcpy(void *restrict dst, const void *restrict src, size_t n);
   // The return value is the address of the destination buffer.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   ProgramStateRef State = C.getState();
 
@@ -1387,9 +1387,9 @@
  CharKind CK) const {
   // void *mempcpy(void *restrict dst, const void *restrict src, size_t n);
   // The return value is a pointer to the byte following the last written byte.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = true;
   constexpr bool IsMempcpy = true;
@@ -1401,9 +1401,9 @@
  CharKind CK) const {
   // void *memmove(void *dst, const void *src, size_t n);
   // The return value is the address of the destination buffer.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = false;
   constexpr bool IsMempcpy = false;
@@ -1413,9 +1413,9 @@
 
 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const {
   // void bcopy(const void *src, void *dst, size_t n);
-  SourceArgExpr Src{CE->getArg(0), 0};
-  DestinationArgExpr Dest = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  SourceArgExpr Src{{CE->getArg(0), 0}};
+  DestinationArgExpr Dest = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = false;
   constexpr bool IsMempcpy = false;
@@ -1430,7 +1430,7 @@
 
   AnyArgExpr Left = {CE->getArg(0), 0};
   AnyArgExpr Right = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   ProgramStateRef State = C.getState();
   SValBuilder &Builder = C.getSValBuilder();
@@ -1698,14 +1698,14 @@
   const LocationContext *LCtx = C.getLocationContext();
 
   // Check that the destination is non-null.
-  DestinationArgExpr Dst = {CE->getArg(0), 0};
+  DestinationArgExpr Dst = {{CE->getArg(0), 0}};
   SVal DstVal = state->getSVal(Dst.Expression, LCtx);
   state = checkNonNull(C, state, Dst, DstVal);
   if (!state)
 return;
 
   // Check that the source is non-null.
-  SourceArgExpr srcExpr = {CE->getArg(1), 1};
+  SourceArgExpr srcExpr = {{CE->getArg(1), 1}};
   SVal srcVal = state->getSVal(srcExpr.Expression, LCtx);
   state = checkNonNull(C, state, srcExpr, srcVal);
   if (!state)
@@ -1736,10 +1736,11 @@
 
   // FIXME: Why do we choose the srcExpr if the access has no size?
   //  Note that the 3rd argument of the call would be the size parameter.
-  SizeArgExpr SrcExprAsSizeDummy = {srcExpr.Expression, srcExpr.ArgumentIndex};
+  SizeArgExpr SrcExprAsSizeDummy = {
+  {srcExpr.Expression, srcExpr.ArgumentIndex}};
   state = CheckOverlap(
   C, state,
-  (IsBounded ? SizeArgExpr{CE->getArg(2), 2} : SrcExprAsSizeDummy), Dst,
+  (IsBounded ? SizeArgExpr{{CE->getArg(2), 2}} : SrcExprAsSizeDummy), Dst,
   srcExpr);
 
   if (!state)
@@ -1748,7 +1749,7 @@
   // If the function is strncpy, strncat, etc... it is bounded.
   if (IsBounded) {
 // Get the max number of characters to copy.
-SizeArgExpr lenExpr = {CE->getArg(2), 2};
+SizeArgExpr lenExpr = {{CE->getArg(2), 2}};
 SVal lenVal = state->getSVal(lenExpr.Expression, LCtx);
 
 // Protect against misdeclared strncpy().
@@ -,7 +2223,7 @@
 void CStringChecker::evalStrsep(CheckerContext &C, const CallExpr *CE) const {
   // char *strsep(char **stringp, const char *delim);
   // Verify whether the search string parameter matches the return type.
-  SourceArgExpr SearchStrPtr = {CE->getArg(0), 0};
+  SourceArgExpr SearchStrPtr = {{CE->getArg(0), 0}};
 
   QualType CharPtrTy = SearchStrPtr.Expression->getType()->getPoint

[PATCH] D154871: [clang] Satisfy clang v12

2023-07-10 Thread Ashay Rane via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG46333f71f8e0: [clang] Satisfy clang v12 (authored by ashay).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D154871/new/

https://reviews.llvm.org/D154871

Files:
  clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp

Index: clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
===
--- clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+++ clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
@@ -1372,9 +1372,9 @@
 CharKind CK) const {
   // void *memcpy(void *restrict dst, const void *restrict src, size_t n);
   // The return value is the address of the destination buffer.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   ProgramStateRef State = C.getState();
 
@@ -1387,9 +1387,9 @@
  CharKind CK) const {
   // void *mempcpy(void *restrict dst, const void *restrict src, size_t n);
   // The return value is a pointer to the byte following the last written byte.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = true;
   constexpr bool IsMempcpy = true;
@@ -1401,9 +1401,9 @@
  CharKind CK) const {
   // void *memmove(void *dst, const void *src, size_t n);
   // The return value is the address of the destination buffer.
-  DestinationArgExpr Dest = {CE->getArg(0), 0};
-  SourceArgExpr Src = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  DestinationArgExpr Dest = {{CE->getArg(0), 0}};
+  SourceArgExpr Src = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = false;
   constexpr bool IsMempcpy = false;
@@ -1413,9 +1413,9 @@
 
 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const {
   // void bcopy(const void *src, void *dst, size_t n);
-  SourceArgExpr Src{CE->getArg(0), 0};
-  DestinationArgExpr Dest = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  SourceArgExpr Src{{CE->getArg(0), 0}};
+  DestinationArgExpr Dest = {{CE->getArg(1), 1}};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   constexpr bool IsRestricted = false;
   constexpr bool IsMempcpy = false;
@@ -1430,7 +1430,7 @@
 
   AnyArgExpr Left = {CE->getArg(0), 0};
   AnyArgExpr Right = {CE->getArg(1), 1};
-  SizeArgExpr Size = {CE->getArg(2), 2};
+  SizeArgExpr Size = {{CE->getArg(2), 2}};
 
   ProgramStateRef State = C.getState();
   SValBuilder &Builder = C.getSValBuilder();
@@ -1698,14 +1698,14 @@
   const LocationContext *LCtx = C.getLocationContext();
 
   // Check that the destination is non-null.
-  DestinationArgExpr Dst = {CE->getArg(0), 0};
+  DestinationArgExpr Dst = {{CE->getArg(0), 0}};
   SVal DstVal = state->getSVal(Dst.Expression, LCtx);
   state = checkNonNull(C, state, Dst, DstVal);
   if (!state)
 return;
 
   // Check that the source is non-null.
-  SourceArgExpr srcExpr = {CE->getArg(1), 1};
+  SourceArgExpr srcExpr = {{CE->getArg(1), 1}};
   SVal srcVal = state->getSVal(srcExpr.Expression, LCtx);
   state = checkNonNull(C, state, srcExpr, srcVal);
   if (!state)
@@ -1736,10 +1736,11 @@
 
   // FIXME: Why do we choose the srcExpr if the access has no size?
   //  Note that the 3rd argument of the call would be the size parameter.
-  SizeArgExpr SrcExprAsSizeDummy = {srcExpr.Expression, srcExpr.ArgumentIndex};
+  SizeArgExpr SrcExprAsSizeDummy = {
+  {srcExpr.Expression, srcExpr.ArgumentIndex}};
   state = CheckOverlap(
   C, state,
-  (IsBounded ? SizeArgExpr{CE->getArg(2), 2} : SrcExprAsSizeDummy), Dst,
+  (IsBounded ? SizeArgExpr{{CE->getArg(2), 2}} : SrcExprAsSizeDummy), Dst,
   srcExpr);
 
   if (!state)
@@ -1748,7 +1749,7 @@
   // If the function is strncpy, strncat, etc... it is bounded.
   if (IsBounded) {
 // Get the max number of characters to copy.
-SizeArgExpr lenExpr = {CE->getArg(2), 2};
+SizeArgExpr lenExpr = {{CE->getArg(2), 2}};
 SVal lenVal = state->getSVal(lenExpr.Expression, LCtx);
 
 // Protect against misdeclared strncpy().
@@ -,7 +2223,7 @@
 void CStringChecker::evalStrsep(CheckerContext &C, const CallExpr *CE) const {
   // char *strsep(char **stringp, const char *delim);
   // Verify whether the search string parameter matches the return type.
-  SourceArgExpr SearchStrPtr = {CE->getArg(0), 0};
+  SourceArgExpr SearchStrPtr = {{

[PATCH] D144934: [clang] drop buggy use of `-serialize-diagnostics` flag

2023-02-27 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github created this revision.
ashay-github added reviewers: ChuanqiXu, jansvoboda11, ben.boeckel.
Herald added a project: All.
ashay-github requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

The `-serialize-diagnostics` flag requires a filename to be passed
immediately after it, but the filename argument was skipped in the
P1689 .cppm clang test.  This caused the code 
to incorrectly consume the
argument that followed as the dignostics file.

Since the `-serialize-diagnostics` flag isn't needed for this test to
work, this patch removes it instead of passing a file argument.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D144934

Files:
  clang/test/ClangScanDeps/P1689.cppm


Index: clang/test/ClangScanDeps/P1689.cppm
===
--- clang/test/ClangScanDeps/P1689.cppm
+++ clang/test/ClangScanDeps/P1689.cppm
@@ -40,7 +40,7 @@
 //
 // Check that we can mix the use of -format=p1689 and -fmodules.
 // RUN: clang-scan-deps -format=p1689 \
-// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps 
-fmodules-cache-path=%t/cache -serialize-diagnostics -c %t/impl_part.cppm -o 
%t/impl_part.o \
+// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps 
-fmodules-cache-path=%t/cache -c %t/impl_part.cppm -o %t/impl_part.o \
 // RUN:   | FileCheck %t/impl_part.cppm -DPREFIX=%/t
 
 //--- P1689.json.in


Index: clang/test/ClangScanDeps/P1689.cppm
===
--- clang/test/ClangScanDeps/P1689.cppm
+++ clang/test/ClangScanDeps/P1689.cppm
@@ -40,7 +40,7 @@
 //
 // Check that we can mix the use of -format=p1689 and -fmodules.
 // RUN: clang-scan-deps -format=p1689 \
-// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache -serialize-diagnostics -c %t/impl_part.cppm -o %t/impl_part.o \
+// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache -c %t/impl_part.cppm -o %t/impl_part.o \
 // RUN:   | FileCheck %t/impl_part.cppm -DPREFIX=%/t
 
 //--- P1689.json.in
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D144934: [clang] drop buggy use of `-serialize-diagnostics` flag

2023-03-01 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github updated this revision to Diff 501516.
ashay-github added a comment.

Rebased with main branch.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144934/new/

https://reviews.llvm.org/D144934

Files:
  clang/test/ClangScanDeps/P1689.cppm


Index: clang/test/ClangScanDeps/P1689.cppm
===
--- clang/test/ClangScanDeps/P1689.cppm
+++ clang/test/ClangScanDeps/P1689.cppm
@@ -40,7 +40,7 @@
 //
 // Check that we can mix the use of -format=p1689 and -fmodules.
 // RUN: clang-scan-deps -format=p1689 \
-// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps 
-fmodules-cache-path=%t/cache -serialize-diagnostics -c %t/impl_part.cppm -o 
%t/impl_part.o \
+// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps 
-fmodules-cache-path=%t/cache -c %t/impl_part.cppm -o %t/impl_part.o \
 // RUN:   | FileCheck %t/impl_part.cppm -DPREFIX=%/t
 
 //--- P1689.json.in


Index: clang/test/ClangScanDeps/P1689.cppm
===
--- clang/test/ClangScanDeps/P1689.cppm
+++ clang/test/ClangScanDeps/P1689.cppm
@@ -40,7 +40,7 @@
 //
 // Check that we can mix the use of -format=p1689 and -fmodules.
 // RUN: clang-scan-deps -format=p1689 \
-// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache -serialize-diagnostics -c %t/impl_part.cppm -o %t/impl_part.o \
+// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache -c %t/impl_part.cppm -o %t/impl_part.o \
 // RUN:   | FileCheck %t/impl_part.cppm -DPREFIX=%/t
 
 //--- P1689.json.in
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D144934: [clang] drop buggy use of `-serialize-diagnostics` flag

2023-03-01 Thread Ashay Rane via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rG969ab7134f4d: [clang] drop buggy use of 
`-serialize-diagnostics` flag (authored by ashay).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144934/new/

https://reviews.llvm.org/D144934

Files:
  clang/test/ClangScanDeps/P1689.cppm


Index: clang/test/ClangScanDeps/P1689.cppm
===
--- clang/test/ClangScanDeps/P1689.cppm
+++ clang/test/ClangScanDeps/P1689.cppm
@@ -40,7 +40,7 @@
 //
 // Check that we can mix the use of -format=p1689 and -fmodules.
 // RUN: clang-scan-deps -format=p1689 \
-// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps 
-fmodules-cache-path=%t/cache -serialize-diagnostics -c %t/impl_part.cppm -o 
%t/impl_part.o \
+// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps 
-fmodules-cache-path=%t/cache -c %t/impl_part.cppm -o %t/impl_part.o \
 // RUN:   | FileCheck %t/impl_part.cppm -DPREFIX=%/t
 
 //--- P1689.json.in


Index: clang/test/ClangScanDeps/P1689.cppm
===
--- clang/test/ClangScanDeps/P1689.cppm
+++ clang/test/ClangScanDeps/P1689.cppm
@@ -40,7 +40,7 @@
 //
 // Check that we can mix the use of -format=p1689 and -fmodules.
 // RUN: clang-scan-deps -format=p1689 \
-// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache -serialize-diagnostics -c %t/impl_part.cppm -o %t/impl_part.o \
+// RUN:   -- %clang++ -std=c++20 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache -c %t/impl_part.cppm -o %t/impl_part.o \
 // RUN:   | FileCheck %t/impl_part.cppm -DPREFIX=%/t
 
 //--- P1689.json.in
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D144934: [clang] drop buggy use of `-serialize-diagnostics` flag

2023-03-01 Thread Ashay Rane via Phabricator via cfe-commits
ashay-github added a comment.

> For pure test updates, best to include `[test] `in the subject :)

Ah, sorry!  Thanks for letting me know, I'll keep that in mind for the future.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144934/new/

https://reviews.llvm.org/D144934

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits