mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-14 11:39:35 +00:00
48e8129edf
This revision adds support in the parser/printer for "deferrable" aliases, i.e. those that can be resolved after printing has finished. This allows for printing aliases for operation locations after the module instead of before, i.e. this is now supported: ``` "foo.op"() : () -> () loc(#loc) #loc = loc("some_location") ``` Differential Revision: https://reviews.llvm.org/D91227
125 lines
2.5 KiB
MLIR
125 lines
2.5 KiB
MLIR
// RUN: mlir-opt %s -split-input-file -verify-diagnostics
|
|
|
|
// -----
|
|
|
|
func @location_missing_l_paren() {
|
|
^bb:
|
|
return loc) // expected-error {{expected '(' in location}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_missing_r_paren() {
|
|
^bb:
|
|
return loc(unknown // expected-error@+1 {{expected ')' in location}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_invalid_instance() {
|
|
^bb:
|
|
return loc() // expected-error {{expected location instance}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_name_missing_r_paren() {
|
|
^bb:
|
|
return loc("foo"(unknown]) // expected-error {{expected ')' after child location of NameLoc}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_name_child_is_name() {
|
|
^bb:
|
|
return loc("foo"("foo")) // expected-error {{child of NameLoc cannot be another NameLoc}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_callsite_missing_l_paren() {
|
|
^bb:
|
|
return loc(callsite unknown // expected-error {{expected '(' in callsite location}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_callsite_missing_callee() {
|
|
^bb:
|
|
return loc(callsite( at ) // expected-error {{expected location instance}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_callsite_missing_at() {
|
|
^bb:
|
|
return loc(callsite(unknown unknown) // expected-error {{expected 'at' in callsite location}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_callsite_missing_caller() {
|
|
^bb:
|
|
return loc(callsite(unknown at ) // expected-error {{expected location instance}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_callsite_missing_r_paren() {
|
|
^bb:
|
|
return loc(callsite( unknown at unknown // expected-error@+1 {{expected ')' in callsite location}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_fused_missing_greater() {
|
|
^bb:
|
|
return loc(fused<true [unknown]) // expected-error {{expected '>' after fused location metadata}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_fused_missing_metadata() {
|
|
^bb:
|
|
// expected-error@+1 {{expected non-function type}}
|
|
return loc(fused<) // expected-error {{expected valid attribute metadata}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_fused_missing_l_square() {
|
|
^bb:
|
|
return loc(fused<true>unknown]) // expected-error {{expected '[' in fused location}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_fused_missing_r_square() {
|
|
^bb:
|
|
return loc(fused[unknown) // expected-error {{expected ']' in fused location}}
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_invalid_alias() {
|
|
// expected-error@+1 {{expected location, but found dialect attribute: '#foo.loc'}}
|
|
return loc(#foo.loc)
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_invalid_alias() {
|
|
// expected-error@+1 {{operation location alias was never defined}}
|
|
return loc(#invalid_alias)
|
|
}
|
|
|
|
// -----
|
|
|
|
func @location_invalid_alias() {
|
|
// expected-error@+1 {{expected location, but found 'true'}}
|
|
return loc(#non_loc)
|
|
}
|
|
|
|
#non_loc = true
|
|
|