# RUN: yaml2obj %s -o %t1.o # RUN: wasm-ld --no-entry --features=foo,bar,baz -o %t.specified.wasm %t1.o # RUN: obj2yaml %t.specified.wasm | FileCheck %s --check-prefix SPECIFIED # RUN: wasm-ld --no-entry --features=bar,baz,quux -o %t.unspecified.wasm %t1.o # RUN: obj2yaml %t.unspecified.wasm | FileCheck %s --check-prefix UNSPECIFIED # RUN: yaml2obj %S/Inputs/disallow-feature-foo.yaml -o %t.disallowed.o # RUN: wasm-ld --no-entry -o - %t1.o %t.disallowed.o | obj2yaml | FileCheck %s --check-prefix DISALLOWED # RUN: yaml2obj %S/Inputs/no-feature-foo.yaml -o %t.none.o # RUN: wasm-ld --no-entry -o - %t1.o %t.none.o | obj2yaml | FileCheck %s --check-prefix NONE # Check that the following combinations of feature linkage policies # give the expected results: # # DISALLOWED x DISALLOWED => NONE # DISALLOWED x NONE => NONE --- !WASM FileHeader: Version: 0x00000001 Sections: - Type: CUSTOM Name: linking Version: 2 - Type: CUSTOM Name: target_features Features: - Prefix: DISALLOWED Name: "foo" # included so output has target features section - Prefix: USED Name: "bar" ... # SPECIFIED: - Type: CUSTOM # SPECIFIED-NEXT: Name: target_features # SPECIFIED-NEXT: Features: # SPECIFIED-NEXT: - Prefix: USED # SPECIFIED-NEXT: Name: bar # SPECIFIED-NEXT: - Prefix: USED # SPECIFIED-NEXT: Name: baz # SPECIFIED-NEXT: - Prefix: USED # SPECIFIED-NEXT: Name: foo # SPECIFIED-NEXT: ... # UNSPECIFIED: - Type: CUSTOM # UNSPECIFIED-NEXT: Name: target_features # UNSPECIFIED-NEXT: Features: # UNSPECIFIED-NEXT: - Prefix: USED # UNSPECIFIED-NEXT: Name: bar # UNSPECIFIED-NEXT: - Prefix: USED # UNSPECIFIED-NEXT: Name: baz # UNSPECIFIED-NEXT: - Prefix: USED # UNSPECIFIED-NEXT: Name: quux # UNSPECIFIED-NEXT: ... # DISALLOWED: - Type: CUSTOM # DISALLOWED-NEXT: Name: target_features # DISALLOWED-NEXT: Features: # DISALLOWED-NEXT: - Prefix: USED # DISALLOWED-NEXT: Name: bar # DISALLOWED-NEXT: ... # NONE: - Type: CUSTOM # NONE-NEXT: Name: target_features # NONE-NEXT: Features: # NONE-NEXT: - Prefix: USED # NONE-NEXT: Name: bar # NONE-NEXT: ...