MmsOTDeveloperadded all modifications made for msdebug
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[APINotes] Support annotating C++ methods This adds support for adding Clang attributes to C++ methods declared within C++ records by using API Notes. For instance: Tags: - Name: IntWrapper Methods: - Name: getIncremented Availability: none This is the first instance of something within a C++ record being annotated with API Notes, so it adds the necessary infra to make a C++ record an "API Notes context". Notably this does not add support for nested C++ tags. That will be added in a follow-up patch. rdar://131387880 | 2 年前 | |
[clang] Replace X && isa<Y>(X) with isa_and_nonnull<Y>(X). NFC (#94987) This addresses a clang-tidy suggestion. | 2 年前 | |
added all modifications made for msdebug | 7 个月前 | |
[clang] Use StringRef::operator== instead of StringRef::equals (NFC) (#91844) I'm planning to remove StringRef::equals in favor of StringRef::operator==. - StringRef::operator==/!= outnumber StringRef::equals by a factor of 24 under clang/ in terms of their usage. - The elimination of StringRef::equals brings StringRef closer to std::string_view, which has operator== but not equals. - S == "foo" is more readable than S.equals("foo"), especially for !Long.Expression.equals("str") vs Long.Expression != "str". | 2 年前 | |
[clang][dataflow] Handle this-capturing lambdas in field initializers. (#99519) We previously would assume these lambdas appeared inside a method definition and end up crashing. | 1 年前 | |
added all modifications made for msdebug | 7 个月前 | |
[CIR][NFC] Add scaffolding for the CIR dialect and CIROps.td This adds no real content, it just incrementally adds some scaffolding necessary to enable a future patch to just add our first few ops. Test Plan: $ cmake -Sllvm -Bbuild -DCLANG_ENABLE_CIR=1 \ -DLLVM_ENABLE_PROJECTS='clang;mlir' \ -DCMAKE_BUILD_TYPE=Release -GNinja $ ninja -C build check-clang $ ninja -C build MLIRCIROpsIncGen $ ninja -C build MLIRCIR Reviewers: AaronBallman, erichkeane, bcardosolopes Reviewed By: erichkeane, AaronBallman, bcardosolopes Pull Request: https://github.com/llvm/llvm-project/pull/86080 | 2 年前 | |
[C++20] [Modules] Fix the duplicated static initializer problem (#114193) Reproducer: //--- a.cppm export module a; int func(); static int a = func(); //--- a.cpp import a; The func() should only execute once. However, before this patch we will somehow import static int a from a.cppm incorrectly and initialize that again. This is super bad and can introduce serious runtime behaviors. And also surprisingly, it looks like the root cause of the problem is simply some oversight choosing APIs. (cherry picked from commit 259eaa6878ead1e2e7ef572a874dc3d885c1899b) | 1 年前 | |
[clang] Use SmallString::operator std::string (NFC) | 2 年前 | |
[llvm][Support] Add and use errnoAsErrorCode (#84423) LLVM is inconsistent about how it converts errno to std::error_code. This can cause problems because values outside of std::errc compare differently if one is system and one is generic on POSIX systems. This is even more of a problem on Windows where use of the system category is just wrong, as that is for Windows errors, which have a completely different mapping than POSIX/generic errors. This patch fixes one instance of this mistake in JSONTransport.cpp. This patch adds errnoAsErrorCode() which makes it so people do not need to think about this issue in the future. It also cleans up a lot of usage of errno in LLVM and Clang. | 2 年前 | |
Fix print module manifest file for macos (#122370) This commit fixes -print-library-module-manifest-path on macos. Currently, this only works on linux systems. This is because on macos systems the library and header files are installed in a different location. The module manifest is next to the libraries and the search function was not looking in both places. There is also a test included. (cherry picked from commit acbd822879f7727127926c25e1b47f5017f962c5) | 1 年前 | |
[HLSL] Implement array temporary support (#79382) HLSL constant sized array function parameters do not decay to pointers. Instead constant sized array types are preserved as unique types for overload resolution, template instantiation and name mangling. This implements the change by adding a new ArrayParameterType which represents a non-decaying ConstantArrayType. The new type behaves the same as ConstantArrayType except that it does not decay to a pointer. Values of ConstantArrayType in HLSL decay during overload resolution via a new HLSLArrayRValue cast to ArrayParameterType. ArrayParamterType values are passed indirectly by-value to functions in IR generation resulting in callee generated memcpy instructions. The behavior of HLSL function calls is documented in the [draft language specification](https://microsoft.github.io/hlsl-specs/specs/hlsl.pdf) under the Expr.Post.Call heading. Additionally the design of this implementation approach is documented in [Clang's documentation](https://clang.llvm.org/docs/HLSL/FunctionCalls.html) Resolves #70123 | 2 年前 | |
[clang][ExtractAPI][NFC] Remove some nullptr dereference problems (#98914) A places try to get a NamedDecl's name using getName when it isn't a simple identifier, migrate these areas to getNameAsString. rdar://125315602 | 2 年前 | |
| 1 年前 | ||
[clang] Implement -fptrauth-auth-traps. (#102417) This provides -fptrauth-auth-traps, which at the frontend level only controls the addition of the "ptrauth-auth-traps" function attribute. The attribute in turn controls various aspects of backend codegen, by providing the guarantee that every "auth" operation generated will trap on failure. This can either be delegated to the hardware (if AArch64 FPAC is known to be available), in which case this attribute doesn't change codegen. Otherwise, if FPAC isn't available, this asks the backend to emit additional instructions to check and trap on auth failure. (cherry picked from commit d179acd0484bac30c5ebbbed4d29a4734d92ac93) | 1 年前 | |
[CIR] Add options to emit ClangIR and enable the ClangIR pipeline Introduce just the option definitions and support for their existance at a few different points in the frontend. This will be followed soon by functionality that uses it. Reviewers: bcardosolopes, jansvoboda11, AaronBallman, erichkeane, MaskRay Reviewed By: erichkeane Pull Request: https://github.com/llvm/llvm-project/pull/89030 | 2 年前 | |
[Headers] [ARM64EC] Fix extra tokens inside intrin0.h preprocessor directive (#112066) Fixes https://github.com/llvm/llvm-project/pull/87717. (cherry picked from commit 9bf68c2400e8966511332dfbf5c0f05e8a3300fa) | 1 年前 | |
[Clang][Index] Add support for dependent class scope explicit specializations of function templates to USRGenerator (#98027) Given the following: template<typename T> struct A { void f(int); // #1 template<typename U> void f(U); // #2 template<> void f<int>(int); // #3 }; Clang will generate the same USR for #1 and #2. This patch fixes the issue by including the template arguments of dependent class scope explicit specializations in their USRs. | 2 年前 | |
[clang] Use StringRef::{starts,ends}_with (NFC) (#75149) This patch replaces uses of StringRef::{starts,ends}with with StringRef::{starts,ends}_with for consistency with std::{string,string_view}::{starts,ends}_with in C++20. I'm planning to deprecate and eventually remove StringRef::{starts,ends}with. | 2 年前 | |
[InstallAPI] Don't look for linker directive symbols in reexports (#98171) $ld$previous symbols need to be exported for them to be seen by clients. TAPI cannot omit them in tbd files, so account for this in installapi verification when handling reexport verification. Reviewed internally by Zixu Wang resolves: rdar://131317591 | 2 年前 | |
[clang-repl] Fix generation of wasm binaries while running clang-repl in browser (#117978) Co-authored-by: Vassil Vassilev <v.g.vassilev@gmail.com> (cherry picked from commit a174aa1e416c4e27945f5a8c646b119126dc8441) | 1 年前 | |
| 1 年前 | ||
[clang] Reject if constexpr in C (#112685) Fixes https://github.com/llvm/llvm-project/issues/112587 | 1 年前 | |
[analyzer][HTMLRewriter] Cache partial rewrite results. (#80220) This is a follow-up for 721dd3bc2 [analyzer] NFC: Don't regenerate duplicate HTML reports. Because HTMLRewriter re-runs the Lexer for syntax highlighting and macro expansion purposes, it may get fairly expensive when the rewriter is invoked multiple times on the same file. In the static analyzer (which uses HTMLRewriter for HTML output mode) we only get away with this because there are usually very few reports emitted per file. But if loud checkers are enabled, such as webkit.*, this may explode in complexity and even cause the compiler to run over the 32-bit SourceLocation addressing limit. This patch caches intermediate results so that re-lexing only needed to happen once. As the clever __COUNTER__ test demonstrates, "once" is still too many. Ideally we shouldn't re-lex anything at all, which remains a TODO. | 2 年前 | |
Fix std::initializer_list recognition if it's exported out of a module - Add implementation - Add a regression test - Add release notes | 1 年前 | |
[Serialization] Handle uninitialized type constraints The ASTWriter currently assumes template type constraints to be initialized ((bool)getTypeConstraint() == hasTypeConstraint()). Issues #99036 and #109354 identified a scenario where this assertion is violated. This patch removes the assumption and adds another boolean to the serialization, to explicitly encode whether the type constraint has been initialized. The same issue was incidentally fixed on the main branch by #111179. This solution avoids backporting #111179 and its dependencies. | 1 年前 | |
| 1 年前 | ||
[RISCV] Remove unused RequiredFeatures argument from RVVIntrinsic constructor. NFC (#98067) Looks like the usage was removed by 7a5cb15ea6facd82756adafae76d60f36a0b60fd | 2 年前 | |
[include-cleaner] Pass WorkingDir to suggestPathToFileForDiagnostics (#95114) Addresses https://github.com/llvm/llvm-project/issues/81215. | 2 年前 | |
[clang-scan-deps] Infer the tool locations from PATH (#108539) This allows the clang driver to know which tool is meant to be executed, which allows the clang driver to load the right clang config files, and allows clang to find colocated sysroots. This makes sure that doing clang-scan-deps -- <tool> ... looks up things in the same way as if one just would execute <tool> ..., when <tool> isn't an absolute or relative path. (cherry picked from commit a26ec542371652e1d774696e90016fd5b0b1c191) | 1 年前 | |
[CIR][cmake] Add support for cmake variable CLANG_ENABLE_CIR Introduce a cmake variable that guards the inclusion of ClangIR into the build of clang. Guard that we aren't trying to build without MLIR. Add two subdirectories that, as of now, don't do anything. Reviewers: bcardosolopes, erichkeane, petrhosek, Ericson2314 Reviewed By: bcardosolopes Pull Request: https://github.com/llvm/llvm-project/pull/86078 | 2 年前 |