CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
53 lines
2.7 KiB
C++
53 lines
2.7 KiB
C++
// RUN: %clang_cc1 -verify %s -std=c++17 -Weverything -Wno-deprecated -Wno-float-equal
|
|
// RUN: %clang_cc1 -verify %s -std=c++2a -Wdeprecated
|
|
|
|
static enum E1 {} e1, e1b;
|
|
static enum E2 {} e2;
|
|
static double d;
|
|
extern void f();
|
|
extern bool b;
|
|
|
|
void f() {
|
|
void(e1 * e1);
|
|
void(e1 * e2); // expected-warning {{arithmetic between different enumeration types}}
|
|
void(e1 * d); // expected-warning {{arithmetic between enumeration type 'enum E1' and floating-point type 'double'}}
|
|
void(d * e1); // expected-warning {{arithmetic between floating-point type 'double' and enumeration type 'enum E1'}}
|
|
|
|
void(e1 + e1);
|
|
void(e1 + e2); // expected-warning {{arithmetic between different enumeration types}}
|
|
void(e1 + d); // expected-warning {{arithmetic between enumeration type 'enum E1' and floating-point type 'double'}}
|
|
void(d + e1); // expected-warning {{arithmetic between floating-point type 'double' and enumeration type 'enum E1'}}
|
|
|
|
#if __cplusplus > 201703L
|
|
void(e1 <=> e1b); // expected-error {{include <compare>}}
|
|
void(e1 <=> e2); // expected-error {{invalid operands}}
|
|
void(e1 <=> d); // expected-error {{invalid operands}}
|
|
void(d <=> e1); // expected-error {{invalid operands}}
|
|
#endif
|
|
|
|
void(e1 < e1b);
|
|
void(e1 < e2); // expected-warning {{comparison of different enumeration types}}
|
|
void(e1 < d); // expected-warning {{comparison of enumeration type 'enum E1' with floating-point type 'double'}}
|
|
void(d < e1); // expected-warning {{comparison of floating-point type 'double' with enumeration type 'enum E1'}}
|
|
|
|
void(e1 == e1b);
|
|
void(e1 == e2); // expected-warning {{comparison of different enumeration types}}
|
|
void(e1 == d); // expected-warning {{comparison of enumeration type 'enum E1' with floating-point type 'double'}}
|
|
void(d == e1); // expected-warning {{comparison of floating-point type 'double' with enumeration type 'enum E1'}}
|
|
|
|
void(b ? e1 : e1b);
|
|
void(b ? e1 : e2); // expected-warning {{conditional expression between different enumeration types}}
|
|
void(b ? e1 : d); // expected-warning {{conditional expression between enumeration type 'enum E1' and floating-point type 'double'}}
|
|
void(b ? d : e1); // expected-warning {{conditional expression between floating-point type 'double' and enumeration type 'enum E1'}}
|
|
|
|
void(e1 = e1b);
|
|
void(e1 = e2); // expected-error {{incompatible}}
|
|
void(e1 = d); // expected-error {{incompatible}}
|
|
void(d = e1); // FIXME: Should we warn on this?
|
|
|
|
void(e1 += e1b); // expected-error {{incompatible}}
|
|
void(e1 += e2); // expected-error {{incompatible}}
|
|
void(e1 += d); // expected-error {{incompatible}}
|
|
void(d += e1); // expected-warning {{compound assignment of floating-point type 'double' from enumeration type 'enum E1'}}
|
|
}
|