diff options
| author | 2022-03-07 11:08:26 +0100 | |
|---|---|---|
| committer | 2022-03-07 11:08:26 +0100 | |
| commit | 07727753b96d209406783e5e539725bcdafebdc7 (patch) | |
| tree | b32f11cbc304d633ed0acd8f84b4c11e909bb5f3 /vendor/modernc.org/cc/v3/parser.go | |
| parent | [documentation] Creates Docker documentation and docker-compose.yaml (#416) (diff) | |
| download | gotosocial-07727753b96d209406783e5e539725bcdafebdc7.tar.xz | |
[feature] Clean up/uncache remote media (#407)
* Add whereNotEmptyAndNotNull
* Add GetRemoteOlderThanDays
* Add GetRemoteOlderThanDays
* Add PruneRemote to Manager interface
* Start implementing PruneRemote
* add new attachment + status to tests
* fix up and test GetRemoteOlderThan
* fix bad import
* PruneRemote: return number pruned
* add Cached column to mediaattachment
* update + test pruneRemote
* update mediaTest
* use Cached column
* upstep bun to latest version
* embed structs in mediaAttachment
* migrate mediaAttachment to new format
* don't default cached to true
* select only remote media
* update db dependencies
* step bun back to last working version
* update pruneRemote to use Cached field
* fix storage path of test attachments
* add recache logic to manager
* fix trimmed aspect ratio
* test prune and recache
* return errwithcode
* tidy up different paths for emoji vs attachment
* fix incorrect thumbnail type being stored
* expose TransportController to media processor
* implement tee-ing recached content
* add thoughts of dog to test fedi attachments
* test get remote files
* add comment on PruneRemote
* add postData cleanup to recache
* test thumbnail fetching
* add incredible diagram
* go mod tidy
* buffer pipes for recache streaming
* test for client stops reading after 1kb
* add media-remote-cache-days to config
* add cron package
* wrap logrus so it's available to cron
* start and stop cron jobs gracefully
Diffstat (limited to 'vendor/modernc.org/cc/v3/parser.go')
| -rw-r--r-- | vendor/modernc.org/cc/v3/parser.go | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/vendor/modernc.org/cc/v3/parser.go b/vendor/modernc.org/cc/v3/parser.go index cf021e9f4..d73b2c6b3 100644 --- a/vendor/modernc.org/cc/v3/parser.go +++ b/vendor/modernc.org/cc/v3/parser.go @@ -313,6 +313,7 @@ var ( dict.sid("__pragma_stdc"): PRAGMASTDC, dict.sid("__restrict"): RESTRICT, dict.sid("__restrict__"): RESTRICT, + dict.sid("__signed"): SIGNED, dict.sid("__signed__"): SIGNED, dict.sid("__thread"): THREADLOCAL, dict.sid("__typeof"): TYPEOF, @@ -2263,7 +2264,7 @@ func (p *parser) functionSpecifier(inline *bool) *FunctionSpecifier { // declarator: // pointer_opt direct-declarator attribute-specifier-list_opt func (p *parser) declarator(declare, isTypedefName bool, ptr *Pointer) *Declarator { - if ptr == nil && p.rune() == '*' { + if ptr == nil && (p.rune() == '*' || p.rune() == '^') { ptr = p.pointer() } r := &Declarator{IsTypedefName: isTypedefName, Pointer: ptr, DirectDeclarator: p.directDeclarator(nil)} @@ -2488,9 +2489,21 @@ func (p *parser) directDeclarator(d *DirectDeclarator) (r *DirectDeclarator) { // pointer: // * type-qualifier-list_opt // * type-qualifier-list_opt pointer +// ^ type-qualifier-list_opt func (p *parser) pointer() (r *Pointer) { + if p.rune() == '^' { + t := p.shift() + var list *TypeQualifiers + switch p.rune() { + case ATTRIBUTE, CONST, RESTRICT, VOLATILE, ATOMIC: + list = p.typeQualifierList() + } + + return &Pointer{Case: PointerBlock, Token: t, TypeQualifiers: list} + } + if p.rune() != '*' { - p.err("expected *") + p.err("expected * or ^") return nil } @@ -2608,7 +2621,8 @@ func (p *parser) parameterDeclaration() *ParameterDeclaration { func (p *parser) declaratorOrAbstractDeclarator(isTypedefName bool) (r Node) { var ptr *Pointer - if p.rune() == '*' { + switch p.rune() { + case '*', '^': ptr = p.pointer() } switch p.rune() { @@ -2766,7 +2780,7 @@ func (p *parser) typeName() *TypeName { // pointer // pointer_opt direct-abstract-declarator func (p *parser) abstractDeclarator(ptr *Pointer) *AbstractDeclarator { - if ptr == nil && p.rune() == '*' { + if ptr == nil && (p.rune() == '*' || p.rune() == '^') { ptr = p.pointer() } switch p.rune() { |
