Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some constraints don't appear to be enforced #3

Open
cjdb opened this issue Dec 21, 2018 · 0 comments
Open

Some constraints don't appear to be enforced #3

cjdb opened this issue Dec 21, 2018 · 0 comments

Comments

@cjdb
Copy link

cjdb commented Dec 21, 2018

Description

My Boolean tests are probably one of my most thorough, and systematically turn off exactly one feature of Boolean (so most of the types don't actually model Boolean). The compiler currently thinks that they do.

Preprocessed file

boolean.ii.txt (GitHub doesn't allow raw *.ii files, so I added .txt to trick it 😉).

Platform

Ubuntu 18.04

Linker

Gold 1.35

Flags to build GCC

See #1.

Flags to build test

See #1 (but change test from core/assignable.cpp to comparison/boolean.cpp).

Diagnostic

root@721baa14bc58:/data/build/gcc-sutton/debug# ninja concepts.comparison.boolean
[1/2] Building CXX object test/concepts/comparison/CMakeFiles/concepts.comparison.boolean.dir/boolean.cpp.o
FAILED: test/concepts/comparison/CMakeFiles/concepts.comparison.boolean.dir/boolean.cpp.o
/opt/sutton/bin/g++-sutton  -DCJDB_AUDIT_CONTRACTS -I../../../include -isystem /root/.conan/data/gsl_microsoft/20180102/bincrafters/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -save-temps -g   -Wall -Wextra -Wno-attributes -Wsign-promo -Woverloaded-virtual -Wnon-virtual-dtor -Wodr -Werror -fdiagnostics-color=always -Wlogical-op -fstack-protector-all -std=c++2a -fsanitize=address -fsanitize=undefined -std=c++2a -MD -MT test/concepts/comparison/CMakeFiles/concepts.comparison.boolean.dir/boolean.cpp.o -MF test/concepts/comparison/CMakeFiles/concepts.comparison.boolean.dir/boolean.cpp.o.d -o test/concepts/comparison/CMakeFiles/concepts.comparison.boolean.dir/boolean.cpp.o -c ../../../test/concepts/comparison/boolean.cpp
../../../test/concepts/comparison/boolean.cpp: In function 'int main()':
../../../test/concepts/comparison/boolean.cpp:34:18: error: static assertion failed
   34 |    static_assert(not Boolean<cjdb_test::explicitly_convertible_boolean>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/concepts/comparison/boolean.cpp:35:18: error: static assertion failed
   35 |    static_assert(not Boolean<cjdb_test::bad_not_boolean>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/concepts/comparison/boolean.cpp:36:18: error: static assertion failed
   36 |    static_assert(not Boolean<cjdb_test::bad_and_boolean1>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/concepts/comparison/boolean.cpp:37:18: error: static assertion failed
   37 |    static_assert(not Boolean<cjdb_test::bad_and_boolean2>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/concepts/comparison/boolean.cpp:38:18: error: static assertion failed
   38 |    static_assert(not Boolean<cjdb_test::bad_and_boolean3>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/concepts/comparison/boolean.cpp:39:18: error: static assertion failed
   39 |    static_assert(not Boolean<cjdb_test::bad_or_boolean1>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/concepts/comparison/boolean.cpp:40:18: error: static assertion failed
   40 |    static_assert(not Boolean<cjdb_test::bad_or_boolean2>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/concepts/comparison/boolean.cpp:41:18: error: static assertion failed
   41 |    static_assert(not Boolean<cjdb_test::bad_or_boolean3>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/concepts/comparison/boolean.cpp:42:18: error: static assertion failed
   42 |    static_assert(not Boolean<cjdb_test::bad_equality_boolean>);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant