This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! On Fri, Oct 11, 2013 at 02:44:16PM +0200, Jan-Benedict Glaw wrote: > The recent change probably gave us this[1]: > > g++ -c -DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -Ic-family -I../../../../gcc/gcc -I../../../../gcc/gcc/c-family -I../../../../gcc/gcc/../include -I../../../../gcc/gcc/../libcpp/include -I../../../../gcc/gcc/../libdecnumber -I../../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I../../../../gcc/gcc/../libbacktrace -o c-family/c-omp.o -MT c-family/c-omp.o -MMD -MP -MF c-family/.deps/c-omp.TPo ../../../../gcc/gcc/c-family/c-omp.c > ../../../../gcc/gcc/c-family/c-omp.c: In function âvoid c_omp_split_clauses(location_t, tree_code, omp_clause_mask, tree, tree_node**)â: > ../../../../gcc/gcc/c-family/c-omp.c:634:12: error: could not convert âmask.omp_clause_mask::operator&(omp_clause_mask(1ul).omp_clause_mask::operator<<(22))â from âomp_clause_maskâ to âboolâ > if (mask & (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NUM_THREADS)) > ^ The original omp_clause_mask fallback was tested, but since then several changes have been made and I forgot to retest it; when HOST_WIDE_INT is 64-bit omp_clause_mask is a normal unsigned HOST_WIDE_INT and no C++ stuff is used to emulate 64-bit bitmask. I have tested two different versions of a fix for this, dunno which one is preferrable, Jason? With the operator bool (), there is ambiguity in the if (((mask >> something) & 1) == 0) tests (so had to use OMP_CLAUSE_MASK_{1,0} instead of {1,0}), another possibility is not to add operator bool () overload that introduces that ambiguity, but then if (mask & something) needs to be replaced with if ((mask & something) != 0) and operator != (int) added. I guess I slightly prefer the first patch since it is smaller. Jakub
Attachment:
X995a
Description: Text document
Attachment:
X995
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |