- Notifications
You must be signed in to change notification settings - Fork 15.3k
Open
Labels
clang:frontendLanguage frontend issues, e.g. anything involving "Sema"Language frontend issues, e.g. anything involving "Sema"clang:openmpOpenMP related changes to ClangOpenMP related changes to Clang
Description
This small program fails to build with -Werror -Wconversion:
int main(void) { #pragma omp parallel #pragma omp single { #pragma omp taskloop for (int i = 0; i < 10000; i++) { #pragma omp task {} } #pragma omp taskloop for (long i = 0L; i < 10000L; i++) { #pragma omp task {} } #pragma omp taskloop for (unsigned long i = 0UL; i < 10000UL; i++) { #pragma omp task {} } } return 0; }+/usr/bin/zsh:12> clang -v clang version 18.1.8 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/14.1.1 Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.1.1 Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.1.1 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Selected multilib: .;@m64 +/usr/bin/zsh:12> clang -fopenmp -Werror -Wconversion /tmp/tl.c -o /tmp/tl /tmp/tl.c:7:8: error: implicit conversion changes signedness: 'long' to 'unsigned long' [-Werror,-Wsign-conversion] 7 | for (int i = 0; i < 10000; i++) { | ~~~ ^~~ /tmp/tl.c:7:8: error: implicit conversion changes signedness: 'long' to 'unsigned long' [-Werror,-Wsign-conversion] 7 | for (int i = 0; i < 10000; i++) { | ~~~ ^~~ /tmp/tl.c:13:8: error: implicit conversion changes signedness: 'unsigned long' to 'long' [-Werror,-Wsign-conversion] 13 | for (long i = 0L; i < 10000L; i++) { | ^~~~ /tmp/tl.c:13:8: error: implicit conversion changes signedness: 'long' to 'unsigned long' [-Werror,-Wsign-conversion] 13 | for (long i = 0L; i < 10000L; i++) { | ~~~ ^~~~ /tmp/tl.c:13:8: error: implicit conversion changes signedness: 'long' to 'unsigned long' [-Werror,-Wsign-conversion] 13 | for (long i = 0L; i < 10000L; i++) { | ~~~ ^~~~ /tmp/tl.c:19:8: error: implicit conversion changes signedness: 'long' to 'unsigned long' [-Werror,-Wsign-conversion] 19 | for (unsigned long i = 0UL; i < 10000UL; i++) { | ~~~ ^~~~~~~~ /tmp/tl.c:19:8: error: implicit conversion changes signedness: 'long' to 'unsigned long' [-Werror,-Wsign-conversion] 19 | for (unsigned long i = 0UL; i < 10000UL; i++) { | ~~~ ^~~~~~~~ /tmp/tl.c:7:8: error: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32] 7 | for (int i = 0; i < 10000; i++) { | ^~~ 8 errors generated. It seems to be failing with any clang version back to 4.0.0
Godbolt: https://godbolt.org/z/drc7s4xjM
Metadata
Metadata
Assignees
Labels
clang:frontendLanguage frontend issues, e.g. anything involving "Sema"Language frontend issues, e.g. anything involving "Sema"clang:openmpOpenMP related changes to ClangOpenMP related changes to Clang