# RUN: yaml2obj %s -o %t1.o # RUN: yaml2obj %S/Inputs/use-feature-foo.yaml -o %t.used.o # RUN: wasm-ld --no-entry -o - %t1.o %t.used.o | obj2yaml | FileCheck %s --check-prefix USED # RUN: yaml2obj %S/Inputs/require-feature-foo.yaml -o %t.required.o # RUN: wasm-ld --no-entry -o - %t1.o %t.required.o | obj2yaml | FileCheck %s --check-prefix REQUIRED # RUN: yaml2obj %S/Inputs/disallow-feature-foo.yaml -o %t.disallowed.o # RUN: not wasm-ld --no-entry -o - %t1.o %t.disallowed.o 2>&1 | 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: # # USED x USED => USED # USED x REQUIRED => USED # USED x DISALLOWED => Error # USED x NONE => USED --- !WASM FileHeader: Version: 0x00000001 Sections: - Type: CUSTOM Name: linking Version: 2 - Type: CUSTOM Name: target_features Features: - Prefix: USED Name: "foo" ... # USED: - Type: CUSTOM # USED-NEXT: Name: target_features # USED-NEXT: Features: # USED-NEXT: - Prefix: USED # USED-NEXT: Name: foo # USED-NEXT: ... # REQUIRED: - Type: CUSTOM # REQUIRED-NEXT: Name: target_features # REQUIRED-NEXT: Features: # REQUIRED-NEXT: - Prefix: USED # REQUIRED-NEXT: Name: foo # REQUIRED-NEXT: ... # DISALLOWED: Target feature "foo" is disallowed # NONE: - Type: CUSTOM # NONE-NEXT: Name: target_features # NONE-NEXT: Features: # NONE-NEXT: - Prefix: USED # NONE-NEXT: Name: foo # NONE-NEXT: ...