Skip to content

[AArch64][WinCFI] Fix a crash due to missing seh directives #9884

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 265 commits into from

Conversation

hjyamauchi
Copy link

Cherry pick commit llvm#123993

dougsonos and others added 30 commits November 19, 2024 10:13
…te expansion weren't verified. (llvm#116505)

---------

Co-authored-by: Doug Wyatt <[email protected]>
The old code did not take the indentation into account.

(cherry picked from commit 8b2dff9)
…vm#116727)

depends on llvm#116711

[lldb] Improve rendering of inline diagnostics on the same column by
fixing the indentation and printing these annotations in the original
order.

Before

    a+b+c;
    ^ ^ ^
    | | error: 3
    | |note: 2b
    | error: 2a
    error: 1

After

    a+b+c;
    ^ ^ ^
    | | error: 3
    | error: 2a
    | note: 2b
    error: 1

(cherry picked from commit 6b4f675)
…lvm#116876)

Based on post-commit review feedback by Felipe Piovezan!

(cherry picked from commit 174899f)
…tests

[lldb][test] Renable tests on asan builds
This patch improves the formatting of editline completions. The current
implementation is naive and doesn't account for the terminal width.

Concretely, the old implementation suffered from the following issues:

- We would unconditionally pad to the longest completion. If that
completion exceeds the width of the terminal, that would result in a lot
of superfluous white space and line wrapping.
- When printing the description, we wouldn't account for the presence of
newlines, and they would continue without leading padding.

The new code accounts for both. If the completion exceeds the available
terminal width, we show what fits on the current lined followed by
ellipsis. We also no longer pad beyond the length of the current line.
Finally, we print the description line by line, with the proper leading
padding. If a line of the description exceeds the available terminal
width, we print ellipsis and won't print the next line.

Before:

```
Available completions:
        _regexp-attach    -- Attach to process by ID or name.
        _regexp-break     -- Set a breakpoint using one of several shorthand
 formats.
        _regexp-bt        -- Show backtrace of the current thread's call sta
ck. Any numeric argument displays at most that many frames. The argument 'al
l' displays all threads. Use 'settings set frame-format' to customize the pr
inting of individual frames and 'settings set thread-format' to customize th
e thread header. Frame recognizers may filter thelist. Use 'thread backtrace
 -u (--unfiltered)' to see them all.
        _regexp-display   -- Evaluate an expression at every stop (see 'help
 target stop-hook'.)

```

After:
```
 Available completions:
        _regexp-attach    -- Attach to process by ID or name.
        _regexp-break     -- Set a breakpoint using one of several shorth...
        _regexp-bt        -- Show backtrace of the current thread's call ...
        _regexp-display   -- Evaluate an expression at every stop (see 'h...
```

rdar://135818198
(cherry picked from commit dd78d7c)
…16095)

This PR changes a part of the PCM format to store string-like things in
the blob attached to a record instead of VBR6-encoding them into the
record itself. Applied to the `IMPORTS` section (which is very hot),
this speeds up dependency scanning by 2.8%.

(cherry picked from commit b769e35)
…240723-lldb-Fix-a-positioning-bug-in-diagnostics-output-116711

[Cherry-pick into stable/20240723] [lldb] Fix a positioning bug in diagnostics output (llvm#116711)
The computation of the key may itself does DWARF lookups which may
acquire additional locks through callbacks into TypeSystem.

rdar://139841554
[lldb] Acquire the map lock after deriving the lookup key
…3-dd78d7c7be5b

[🍒 stable/20240723] [lldb] Improve editline completion formatting (llvm#116456)
…-swiftexpressionparser-stable0723

[lldb][Plugins][Swift] Reflect API changes in `SwiftExpressionParser`
…y-imports

🍒 [clang][serialization] Blobify IMPORTS strings and signatures
Arguably as a bug, Clang has previously not mixed up Objective-C
parameter names with types. This allows developers to write
parameter names that _should_ shadow type names, but don't. For
instance:

    @interface Foo
    -(void)foo:(int)id bar:(id)name; // OK
    @EnD

Commit 9778808 changed the way
that parameters are parsed to bring it more in line with how C
parameters are parsed, but it breaks the example above. Given an
expectation that the change wouldn't introduce source breaks, this
is not something we can go forward with.

977880... did this so that late-parsed attributes could reference
Objective-C parameters. This change buffers Objective-C parameter
info until after all parameters are parsed and turns them into
parameter declarations before realizing late-parsed attributes
instead.

Radar-ID: 139996306
[lldb] Update for removal of `ModuleDecl::addFile`
…lvm#111729)

Use SEND_ERROR (continue processing, but skip generation) instead of
FATAL_ERROR (stop processing and generation). This means that developers
get to see all errors at once, instead of seeing just the first error
and having to reconfigure to discover the next one.
egorzhdan and others added 28 commits January 16, 2025 12:22
If a C++ class template is annotated via API Notes, the instantiations
had the attributes repeated twice. This is because Clang was adding the
attribute twice while processing the same class template. This change
makes sure we don't try to add attributes from API Notes twice.

There is currently no way to annotate specific instantiations using API
Notes.

rdar://142539959
(cherry picked from commit feb7872)
…es-class-template

🍒[APINotes] Avoid duplicated attributes for class template instantiations
Fixes 0e91323 /
llvm#111531

For reasons I can't explain, a clean build works fine for me, and all
the bots are working fine. But if I rebuild in some way the make tool
becomes None.

Looking at the other variables, they had these extra lines so I've added
those for make and it seems to solve the problem.

(cherry picked from commit a2bd5db)

Co-authored-by: David Spickett <[email protected]>
This adds support for annotating function parameters with __counted_by, __sized_by, __counted_by_or_null, __sized_by_or_null, and __ended_by, using API notes. The main content of handlePtrCountedByEndedByAttr is extracted to applyPtrCountedByEndedByAttr and decoupled from ParsedAttr. The helper function ParseBoundsAttributeArgFromString is added to make it possible to parse count expressions from SemaAPINotes.

The current implementation of __terminated_by/__null_terminated makes it harder to extract from the iterative type processing, but since it doesn't require any extra context to parse the attribute, it can be applied using the normal Type override instead.

rdar://139830881
Introduces the first of a new group of commands for working with Swift Task instances.

The new command group is `language swift task`, and the first command is `backtrace`. This `backtrace` command takes the name of a task variable and prints the task's backtrace. The variable can be either `Task<Success, Failure>` or `UnsafeCurrentTask`. The output is similar to the builtin `thread backtrace` (`bt`) command.

See the original PR: swiftlang#9787
…riples in Clang Driver

This change moves arm64e pointer authentication flag computation the the
DarwinClang toolchain to the base MachO toolchain. This makes the logic apply
to all Mach-O target triples, not just Darwin ones.
…ray is indexed by const evaluatable expressions (llvm#119340)"

This reverts commit 64c2156.
Causes asserts, see
llvm#119340 (comment)

(cherry picked from commit 7dd34ba)
…rray is indexed by const evaluatable expressions (llvm#119340)"" (llvm#123713)

This reverts commit 7dd34ba.

Fixed the assertion violation reported by
7dd34ba

Co-authored-by: MalavikaSamak <[email protected]>
(cherry picked from commit 2a8c12b)
…expression

Cherry pick commits that relanded commit 34a72d1
Introduce `language swift task select <task>`. This uses much of the work done for `task backtrace`, including the artificial thread class `ThreadTask`.

This change allows users to select a task, as though it is a thread. From there, they can run other thread commands, such as `backtrace`. Users can also then run frame navigation commands, such as `up`/`down`/`frame select`.
@hjyamauchi hjyamauchi requested a review from a team as a code owner January 24, 2025 23:39
@hjyamauchi hjyamauchi closed this Jan 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.