Changes in / [a01faa98:b09ca2b]
- Files:
-
- 200 added
- 207 deleted
- 23 edited
-
libcfa/src/Makefile.am (modified) (4 diffs)
-
libcfa/src/concurrency/atomic.hfa (deleted)
-
src/AST/Pass.impl.hpp (modified) (1 diff)
-
src/AST/Print.cpp (modified) (1 diff)
-
src/AST/SymbolTable.cpp (modified) (1 diff)
-
src/AST/TypeSubstitution.cpp (modified) (3 diffs)
-
src/AST/TypeSubstitution.hpp (modified) (4 diffs)
-
src/Concurrency/Waituntil.cpp (modified) (1 diff)
-
src/ControlStruct/ExceptDeclNew.cpp (modified) (1 diff)
-
src/GenPoly/SpecializeNew.cpp (modified) (1 diff)
-
src/MakeLibCfaNew.cpp (modified) (1 diff)
-
src/ResolvExpr/CommonType.cc (modified) (1 diff)
-
src/ResolvExpr/PolyCost.cc (modified) (1 diff)
-
src/Tuples/Explode.cc (modified) (1 diff)
-
src/Validate/Autogen.cpp (modified) (1 diff)
-
src/Validate/FixQualifiedTypes.cpp (modified) (1 diff)
-
src/Validate/GenericParameter.cpp (modified) (1 diff)
-
src/Validate/ReplaceTypedef.cpp (modified) (1 diff)
-
src/Virtual/ExpandCasts.cc (modified) (1 diff)
-
src/main.cc (modified) (1 diff)
-
tests/.expect/array-ERR1.txt (deleted)
-
tests/.expect/array-ERR2.txt (deleted)
-
tests/.expect/array-ERR3.txt (deleted)
-
tests/.expect/array.txt (modified) (1 diff)
-
tests/Makefile.am (modified) (5 diffs)
-
tests/PRNG.cfa (modified) (1 diff)
-
tests/array.cfa (modified) (1 diff)
-
tests/concurrency/.expect/clib.txt (deleted)
-
tests/concurrency/.expect/clib_tls.txt (deleted)
-
tests/concurrency/.expect/cluster.txt (deleted)
-
tests/concurrency/.expect/coroutineYield.txt (deleted)
-
tests/concurrency/.expect/ctor-check.txt (deleted)
-
tests/concurrency/.expect/join.txt (deleted)
-
tests/concurrency/.expect/joinerror.sed (deleted)
-
tests/concurrency/.expect/keywordErrors.txt (deleted)
-
tests/concurrency/.expect/lockfree_stack.txt (deleted)
-
tests/concurrency/.expect/mainError.txt (deleted)
-
tests/concurrency/.expect/migrate.txt (deleted)
-
tests/concurrency/.expect/monitor.txt (deleted)
-
tests/concurrency/.expect/multi-monitor.txt (deleted)
-
tests/concurrency/.expect/once.txt (deleted)
-
tests/concurrency/.expect/preempt.txt (deleted)
-
tests/concurrency/.expect/preempt2.txt (deleted)
-
tests/concurrency/.expect/sleep.txt (deleted)
-
tests/concurrency/.expect/suspend_then.txt (deleted)
-
tests/concurrency/.expect/thread.txt (deleted)
-
tests/concurrency/actors/.expect/dynamic.txt (deleted)
-
tests/concurrency/actors/.expect/executor.txt (deleted)
-
tests/concurrency/actors/.expect/inherit.txt (deleted)
-
tests/concurrency/actors/.expect/matrix.txt (deleted)
-
tests/concurrency/actors/.expect/pingpong.txt (deleted)
-
tests/concurrency/actors/.expect/poison.txt (deleted)
-
tests/concurrency/actors/.expect/static.txt (deleted)
-
tests/concurrency/actors/.expect/types.txt (deleted)
-
tests/concurrency/actors/dynamic.cfa (deleted)
-
tests/concurrency/actors/executor.cfa (deleted)
-
tests/concurrency/actors/inherit.cfa (deleted)
-
tests/concurrency/actors/matrix.cfa (deleted)
-
tests/concurrency/actors/pingpong.cfa (deleted)
-
tests/concurrency/actors/poison.cfa (deleted)
-
tests/concurrency/actors/static.cfa (deleted)
-
tests/concurrency/actors/types.cfa (deleted)
-
tests/concurrency/barrier/.expect/generation.txt (deleted)
-
tests/concurrency/barrier/.expect/last.txt (deleted)
-
tests/concurrency/barrier/.expect/order.txt (deleted)
-
tests/concurrency/barrier/gen_generation_expect.cfa (deleted)
-
tests/concurrency/barrier/generation.cfa (deleted)
-
tests/concurrency/barrier/last.cfa (deleted)
-
tests/concurrency/barrier/order.cfa (deleted)
-
tests/concurrency/channels/.expect/big_elems.txt (deleted)
-
tests/concurrency/channels/.expect/churn.txt (deleted)
-
tests/concurrency/channels/.expect/contend.txt (deleted)
-
tests/concurrency/channels/.expect/daisy_chain.txt (deleted)
-
tests/concurrency/channels/.expect/hot_potato.txt (deleted)
-
tests/concurrency/channels/.expect/ping_pong.txt (deleted)
-
tests/concurrency/channels/.expect/pub_sub.txt (deleted)
-
tests/concurrency/channels/.expect/zero_size.txt (deleted)
-
tests/concurrency/channels/barrier.cfa (deleted)
-
tests/concurrency/channels/big_elems.cfa (deleted)
-
tests/concurrency/channels/churn.cfa (deleted)
-
tests/concurrency/channels/contend.cfa (deleted)
-
tests/concurrency/channels/daisy_chain.cfa (deleted)
-
tests/concurrency/channels/hot_potato.cfa (deleted)
-
tests/concurrency/channels/parallel_harness.hfa (deleted)
-
tests/concurrency/channels/ping_pong.cfa (deleted)
-
tests/concurrency/channels/pub_sub.cfa (deleted)
-
tests/concurrency/channels/zero_size.cfa (deleted)
-
tests/concurrency/clib.c (deleted)
-
tests/concurrency/clib_tls.c (deleted)
-
tests/concurrency/cluster.cfa (deleted)
-
tests/concurrency/coroutineYield.cfa (deleted)
-
tests/concurrency/ctor-check.cfa (deleted)
-
tests/concurrency/examples/.expect/boundedBufferEXT.txt (deleted)
-
tests/concurrency/examples/.expect/boundedBufferINT.txt (deleted)
-
tests/concurrency/examples/.expect/datingService.txt (deleted)
-
tests/concurrency/examples/.expect/gortn.txt (deleted)
-
tests/concurrency/examples/.expect/matrixSum.txt (deleted)
-
tests/concurrency/examples/.expect/quickSort.txt (deleted)
-
tests/concurrency/examples/.in/quickSort.txt (deleted)
-
tests/concurrency/examples/boundedBufferEXT.cfa (deleted)
-
tests/concurrency/examples/boundedBufferINT.cfa (deleted)
-
tests/concurrency/examples/boundedBufferTHREAD.cfa (deleted)
-
tests/concurrency/examples/datingService.cfa (deleted)
-
tests/concurrency/examples/gortn.cfa (deleted)
-
tests/concurrency/examples/matrixSum.cfa (deleted)
-
tests/concurrency/examples/multiSort.cfa (deleted)
-
tests/concurrency/examples/quickSort.cfa (deleted)
-
tests/concurrency/examples/quickSort.generic.cfa (deleted)
-
tests/concurrency/futures/.expect/abandon.txt (deleted)
-
tests/concurrency/futures/.expect/basic.txt (deleted)
-
tests/concurrency/futures/.expect/multi.txt (deleted)
-
tests/concurrency/futures/.expect/select_future.txt (deleted)
-
tests/concurrency/futures/.expect/typed.txt (deleted)
-
tests/concurrency/futures/.expect/wait_any.txt (deleted)
-
tests/concurrency/futures/abandon.cfa (deleted)
-
tests/concurrency/futures/basic.cfa (deleted)
-
tests/concurrency/futures/multi.cfa (deleted)
-
tests/concurrency/futures/select_future.cfa (deleted)
-
tests/concurrency/futures/typed.cfa (deleted)
-
tests/concurrency/futures/wait_any.cfa (deleted)
-
tests/concurrency/join.cfa (deleted)
-
tests/concurrency/joinerror.cfa (deleted)
-
tests/concurrency/keywordErrors.cfa (deleted)
-
tests/concurrency/lockfree_stack.cfa (deleted)
-
tests/concurrency/mainError.cfa (deleted)
-
tests/concurrency/migrate.cfa (deleted)
-
tests/concurrency/monitor.cfa (deleted)
-
tests/concurrency/multi-monitor.cfa (deleted)
-
tests/concurrency/mutexstmt/.expect/locks.txt (deleted)
-
tests/concurrency/mutexstmt/.expect/monitors.txt (deleted)
-
tests/concurrency/mutexstmt/locks.cfa (deleted)
-
tests/concurrency/mutexstmt/monitors.cfa (deleted)
-
tests/concurrency/once.cfa (deleted)
-
tests/concurrency/park/.expect/contention.txt (deleted)
-
tests/concurrency/park/.expect/force_preempt.txt (deleted)
-
tests/concurrency/park/.expect/start_parked.txt (deleted)
-
tests/concurrency/park/contention.cfa (deleted)
-
tests/concurrency/park/force_preempt.cfa (deleted)
-
tests/concurrency/park/start_parked.cfa (deleted)
-
tests/concurrency/preempt.cfa (deleted)
-
tests/concurrency/preempt2.cfa (deleted)
-
tests/concurrency/pthread/.expect/bounded_buffer.x64.txt (deleted)
-
tests/concurrency/pthread/.expect/bounded_buffer.x86.txt (deleted)
-
tests/concurrency/pthread/.expect/pthread_attr_test.txt (deleted)
-
tests/concurrency/pthread/.expect/pthread_cond_test.txt (deleted)
-
tests/concurrency/pthread/.expect/pthread_demo_create_join.txt (deleted)
-
tests/concurrency/pthread/.expect/pthread_demo_lock.txt (deleted)
-
tests/concurrency/pthread/.expect/pthread_key_test.txt (deleted)
-
tests/concurrency/pthread/.expect/pthread_once_test.txt (deleted)
-
tests/concurrency/pthread/bounded_buffer.cfa (deleted)
-
tests/concurrency/pthread/pthread_attr_test.cfa (deleted)
-
tests/concurrency/pthread/pthread_cond_test.cfa (deleted)
-
tests/concurrency/pthread/pthread_demo_create_join.cfa (deleted)
-
tests/concurrency/pthread/pthread_demo_lock.cfa (deleted)
-
tests/concurrency/pthread/pthread_key_test.cfa (deleted)
-
tests/concurrency/pthread/pthread_once_test.cfa (deleted)
-
tests/concurrency/readyQ/.expect/barrier_sleeper.txt (deleted)
-
tests/concurrency/readyQ/.expect/leader_spin.txt (deleted)
-
tests/concurrency/readyQ/barrier_sleeper.cfa (deleted)
-
tests/concurrency/readyQ/leader_spin.cfa (deleted)
-
tests/concurrency/signal/.expect/block.txt (deleted)
-
tests/concurrency/signal/.expect/disjoint.txt (deleted)
-
tests/concurrency/signal/.expect/wait.txt (deleted)
-
tests/concurrency/signal/block.cfa (deleted)
-
tests/concurrency/signal/disjoint.cfa (deleted)
-
tests/concurrency/signal/wait.cfa (deleted)
-
tests/concurrency/sleep.cfa (deleted)
-
tests/concurrency/suspend_then.cfa (deleted)
-
tests/concurrency/thread.cfa (deleted)
-
tests/concurrency/unified_locking/.expect/block_spin_lock.txt (deleted)
-
tests/concurrency/unified_locking/.expect/exp_backoff.txt (deleted)
-
tests/concurrency/unified_locking/.expect/fast_block_lock.txt (deleted)
-
tests/concurrency/unified_locking/.expect/futex_mutex.txt (deleted)
-
tests/concurrency/unified_locking/.expect/locks.txt (deleted)
-
tests/concurrency/unified_locking/.expect/mcs.txt (deleted)
-
tests/concurrency/unified_locking/.expect/mcs_block_spin_lock.txt (deleted)
-
tests/concurrency/unified_locking/.expect/mcs_spin.txt (deleted)
-
tests/concurrency/unified_locking/.expect/pthread_locks.txt (deleted)
-
tests/concurrency/unified_locking/.expect/simple_owner_lock.txt (deleted)
-
tests/concurrency/unified_locking/.expect/spin_queue_lock.txt (deleted)
-
tests/concurrency/unified_locking/.expect/timeout_lock.txt (deleted)
-
tests/concurrency/unified_locking/block_spin_lock.cfa (deleted)
-
tests/concurrency/unified_locking/exp_backoff.cfa (deleted)
-
tests/concurrency/unified_locking/fast_block_lock.cfa (deleted)
-
tests/concurrency/unified_locking/futex_mutex.cfa (deleted)
-
tests/concurrency/unified_locking/locks.cfa (deleted)
-
tests/concurrency/unified_locking/mcs.cfa (deleted)
-
tests/concurrency/unified_locking/mcs_block_spin_lock.cfa (deleted)
-
tests/concurrency/unified_locking/mcs_spin.cfa (deleted)
-
tests/concurrency/unified_locking/mutex_test.hfa (deleted)
-
tests/concurrency/unified_locking/pthread_locks.cfa (deleted)
-
tests/concurrency/unified_locking/simple_owner_lock.cfa (deleted)
-
tests/concurrency/unified_locking/spin_queue_lock.cfa (deleted)
-
tests/concurrency/unified_locking/spintest.cfa (deleted)
-
tests/concurrency/unified_locking/test_debug.cfa (deleted)
-
tests/concurrency/unified_locking/thread_test.cfa (deleted)
-
tests/concurrency/unified_locking/timeout_lock.cfa (deleted)
-
tests/concurrency/waitfor/.expect/barge.txt (deleted)
-
tests/concurrency/waitfor/.expect/dtor.txt (deleted)
-
tests/concurrency/waitfor/.expect/else.txt (deleted)
-
tests/concurrency/waitfor/.expect/parse.txt (deleted)
-
tests/concurrency/waitfor/.expect/recurse.txt (deleted)
-
tests/concurrency/waitfor/.expect/statment.txt (deleted)
-
tests/concurrency/waitfor/.expect/when.txt (deleted)
-
tests/concurrency/waitfor/barge.cfa (deleted)
-
tests/concurrency/waitfor/dtor.cfa (deleted)
-
tests/concurrency/waitfor/else.cfa (deleted)
-
tests/concurrency/waitfor/parse.cfa (deleted)
-
tests/concurrency/waitfor/recurse.cfa (deleted)
-
tests/concurrency/waitfor/simple.cfa (deleted)
-
tests/concurrency/waitfor/statment.cfa (deleted)
-
tests/concurrency/waitfor/when.cfa (deleted)
-
tests/concurrency/waituntil/.expect/all_types.txt (deleted)
-
tests/concurrency/waituntil/.expect/basic_else.txt (deleted)
-
tests/concurrency/waituntil/.expect/channel_close.txt (deleted)
-
tests/concurrency/waituntil/.expect/channel_zero_size.txt (deleted)
-
tests/concurrency/waituntil/.expect/channels.txt (deleted)
-
tests/concurrency/waituntil/.expect/futures.txt (deleted)
-
tests/concurrency/waituntil/.expect/locks.txt (deleted)
-
tests/concurrency/waituntil/.expect/one_chan.txt (deleted)
-
tests/concurrency/waituntil/.expect/timeout.txt (deleted)
-
tests/concurrency/waituntil/all_types.cfa (deleted)
-
tests/concurrency/waituntil/basic_else.cfa (deleted)
-
tests/concurrency/waituntil/channel_close.cfa (deleted)
-
tests/concurrency/waituntil/channel_zero_size.cfa (deleted)
-
tests/concurrency/waituntil/channels.cfa (deleted)
-
tests/concurrency/waituntil/futures.cfa (deleted)
-
tests/concurrency/waituntil/locks.cfa (deleted)
-
tests/concurrency/waituntil/one_chan.cfa (deleted)
-
tests/concurrency/waituntil/timeout.cfa (deleted)
-
tests/concurrent/.expect/clib.txt (added)
-
tests/concurrent/.expect/clib_tls.txt (added)
-
tests/concurrent/.expect/cluster.txt (added)
-
tests/concurrent/.expect/coroutineYield.txt (added)
-
tests/concurrent/.expect/ctor-check.txt (added)
-
tests/concurrent/.expect/join.txt (added)
-
tests/concurrent/.expect/joinerror.sed (added)
-
tests/concurrent/.expect/keywordErrors.txt (added)
-
tests/concurrent/.expect/mainError.txt (added)
-
tests/concurrent/.expect/migrate.txt (added)
-
tests/concurrent/.expect/monitor.txt (added)
-
tests/concurrent/.expect/multi-monitor.txt (added)
-
tests/concurrent/.expect/once.txt (added)
-
tests/concurrent/.expect/preempt.txt (added)
-
tests/concurrent/.expect/preempt2.txt (added)
-
tests/concurrent/.expect/sleep.txt (added)
-
tests/concurrent/.expect/suspend_then.txt (added)
-
tests/concurrent/.expect/thread.txt (added)
-
tests/concurrent/actors/.expect/dynamic.txt (added)
-
tests/concurrent/actors/.expect/executor.txt (added)
-
tests/concurrent/actors/.expect/inherit.txt (added)
-
tests/concurrent/actors/.expect/matrix.txt (added)
-
tests/concurrent/actors/.expect/pingpong.txt (added)
-
tests/concurrent/actors/.expect/poison.txt (added)
-
tests/concurrent/actors/.expect/static.txt (added)
-
tests/concurrent/actors/.expect/types.txt (added)
-
tests/concurrent/actors/dynamic.cfa (added)
-
tests/concurrent/actors/executor.cfa (added)
-
tests/concurrent/actors/inherit.cfa (added)
-
tests/concurrent/actors/matrix.cfa (added)
-
tests/concurrent/actors/pingpong.cfa (added)
-
tests/concurrent/actors/poison.cfa (added)
-
tests/concurrent/actors/static.cfa (added)
-
tests/concurrent/actors/types.cfa (added)
-
tests/concurrent/barrier/.expect/generation.txt (added)
-
tests/concurrent/barrier/.expect/last.txt (added)
-
tests/concurrent/barrier/.expect/order.txt (added)
-
tests/concurrent/barrier/gen_generation_expect.cfa (added)
-
tests/concurrent/barrier/generation.cfa (added)
-
tests/concurrent/barrier/last.cfa (added)
-
tests/concurrent/barrier/order.cfa (added)
-
tests/concurrent/channels/.expect/big_elems.txt (added)
-
tests/concurrent/channels/.expect/churn.txt (added)
-
tests/concurrent/channels/.expect/contend.txt (added)
-
tests/concurrent/channels/.expect/daisy_chain.txt (added)
-
tests/concurrent/channels/.expect/hot_potato.txt (added)
-
tests/concurrent/channels/.expect/ping_pong.txt (added)
-
tests/concurrent/channels/.expect/pub_sub.txt (added)
-
tests/concurrent/channels/.expect/zero_size.txt (added)
-
tests/concurrent/channels/barrier.cfa (added)
-
tests/concurrent/channels/big_elems.cfa (added)
-
tests/concurrent/channels/churn.cfa (added)
-
tests/concurrent/channels/contend.cfa (added)
-
tests/concurrent/channels/daisy_chain.cfa (added)
-
tests/concurrent/channels/hot_potato.cfa (added)
-
tests/concurrent/channels/parallel_harness.hfa (added)
-
tests/concurrent/channels/ping_pong.cfa (added)
-
tests/concurrent/channels/pub_sub.cfa (added)
-
tests/concurrent/channels/zero_size.cfa (added)
-
tests/concurrent/clib.c (added)
-
tests/concurrent/clib_tls.c (added)
-
tests/concurrent/cluster.cfa (added)
-
tests/concurrent/coroutineYield.cfa (added)
-
tests/concurrent/ctor-check.cfa (added)
-
tests/concurrent/examples/.expect/boundedBufferEXT.txt (added)
-
tests/concurrent/examples/.expect/boundedBufferINT.txt (added)
-
tests/concurrent/examples/.expect/datingService.txt (added)
-
tests/concurrent/examples/.expect/gortn.txt (added)
-
tests/concurrent/examples/.expect/matrixSum.txt (added)
-
tests/concurrent/examples/.expect/quickSort.txt (added)
-
tests/concurrent/examples/.in/quickSort.txt (added)
-
tests/concurrent/examples/boundedBufferEXT.cfa (added)
-
tests/concurrent/examples/boundedBufferINT.cfa (added)
-
tests/concurrent/examples/boundedBufferTHREAD.cfa (added)
-
tests/concurrent/examples/datingService.cfa (added)
-
tests/concurrent/examples/gortn.cfa (added)
-
tests/concurrent/examples/matrixSum.cfa (added)
-
tests/concurrent/examples/multiSort.cfa (added)
-
tests/concurrent/examples/quickSort.cfa (added)
-
tests/concurrent/examples/quickSort.generic.cfa (added)
-
tests/concurrent/futures/.expect/abandon.txt (added)
-
tests/concurrent/futures/.expect/basic.txt (added)
-
tests/concurrent/futures/.expect/multi.txt (added)
-
tests/concurrent/futures/.expect/select_future.txt (added)
-
tests/concurrent/futures/.expect/typed.txt (added)
-
tests/concurrent/futures/.expect/wait_any.txt (added)
-
tests/concurrent/futures/abandon.cfa (added)
-
tests/concurrent/futures/basic.cfa (added)
-
tests/concurrent/futures/multi.cfa (added)
-
tests/concurrent/futures/select_future.cfa (added)
-
tests/concurrent/futures/typed.cfa (added)
-
tests/concurrent/futures/wait_any.cfa (added)
-
tests/concurrent/join.cfa (added)
-
tests/concurrent/joinerror.cfa (added)
-
tests/concurrent/keywordErrors.cfa (added)
-
tests/concurrent/mainError.cfa (added)
-
tests/concurrent/migrate.cfa (added)
-
tests/concurrent/monitor.cfa (added)
-
tests/concurrent/multi-monitor.cfa (added)
-
tests/concurrent/mutexstmt/.expect/locks.txt (added)
-
tests/concurrent/mutexstmt/.expect/monitors.txt (added)
-
tests/concurrent/mutexstmt/locks.cfa (added)
-
tests/concurrent/mutexstmt/monitors.cfa (added)
-
tests/concurrent/once.cfa (added)
-
tests/concurrent/park/.expect/contention.txt (added)
-
tests/concurrent/park/.expect/force_preempt.txt (added)
-
tests/concurrent/park/.expect/start_parked.txt (added)
-
tests/concurrent/park/contention.cfa (added)
-
tests/concurrent/park/force_preempt.cfa (added)
-
tests/concurrent/park/start_parked.cfa (added)
-
tests/concurrent/preempt.cfa (added)
-
tests/concurrent/preempt2.cfa (added)
-
tests/concurrent/pthread/.expect/bounded_buffer.x64.txt (added)
-
tests/concurrent/pthread/.expect/bounded_buffer.x86.txt (added)
-
tests/concurrent/pthread/.expect/pthread_attr_test.txt (added)
-
tests/concurrent/pthread/.expect/pthread_cond_test.txt (added)
-
tests/concurrent/pthread/.expect/pthread_demo_create_join.txt (added)
-
tests/concurrent/pthread/.expect/pthread_demo_lock.txt (added)
-
tests/concurrent/pthread/.expect/pthread_key_test.txt (added)
-
tests/concurrent/pthread/.expect/pthread_once_test.txt (added)
-
tests/concurrent/pthread/bounded_buffer.cfa (added)
-
tests/concurrent/pthread/pthread_attr_test.cfa (added)
-
tests/concurrent/pthread/pthread_cond_test.cfa (added)
-
tests/concurrent/pthread/pthread_demo_create_join.cfa (added)
-
tests/concurrent/pthread/pthread_demo_lock.cfa (added)
-
tests/concurrent/pthread/pthread_key_test.cfa (added)
-
tests/concurrent/pthread/pthread_once_test.cfa (added)
-
tests/concurrent/readyQ/.expect/barrier_sleeper.txt (added)
-
tests/concurrent/readyQ/.expect/leader_spin.txt (added)
-
tests/concurrent/readyQ/barrier_sleeper.cfa (added)
-
tests/concurrent/readyQ/leader_spin.cfa (added)
-
tests/concurrent/signal/.expect/block.txt (added)
-
tests/concurrent/signal/.expect/disjoint.txt (added)
-
tests/concurrent/signal/.expect/wait.txt (added)
-
tests/concurrent/signal/block.cfa (added)
-
tests/concurrent/signal/disjoint.cfa (added)
-
tests/concurrent/signal/wait.cfa (added)
-
tests/concurrent/sleep.cfa (added)
-
tests/concurrent/suspend_then.cfa (added)
-
tests/concurrent/thread.cfa (added)
-
tests/concurrent/unified_locking/.expect/block_spin_lock.txt (added)
-
tests/concurrent/unified_locking/.expect/exp_backoff.txt (added)
-
tests/concurrent/unified_locking/.expect/fast_block_lock.txt (added)
-
tests/concurrent/unified_locking/.expect/futex_mutex.txt (added)
-
tests/concurrent/unified_locking/.expect/locks.txt (added)
-
tests/concurrent/unified_locking/.expect/mcs.txt (added)
-
tests/concurrent/unified_locking/.expect/mcs_block_spin_lock.txt (added)
-
tests/concurrent/unified_locking/.expect/mcs_spin.txt (added)
-
tests/concurrent/unified_locking/.expect/pthread_locks.txt (added)
-
tests/concurrent/unified_locking/.expect/simple_owner_lock.txt (added)
-
tests/concurrent/unified_locking/.expect/spin_queue_lock.txt (added)
-
tests/concurrent/unified_locking/.expect/timeout_lock.txt (added)
-
tests/concurrent/unified_locking/block_spin_lock.cfa (added)
-
tests/concurrent/unified_locking/exp_backoff.cfa (added)
-
tests/concurrent/unified_locking/fast_block_lock.cfa (added)
-
tests/concurrent/unified_locking/futex_mutex.cfa (added)
-
tests/concurrent/unified_locking/locks.cfa (added)
-
tests/concurrent/unified_locking/mcs.cfa (added)
-
tests/concurrent/unified_locking/mcs_block_spin_lock.cfa (added)
-
tests/concurrent/unified_locking/mcs_spin.cfa (added)
-
tests/concurrent/unified_locking/mutex_test.hfa (added)
-
tests/concurrent/unified_locking/pthread_locks.cfa (added)
-
tests/concurrent/unified_locking/simple_owner_lock.cfa (added)
-
tests/concurrent/unified_locking/spin_queue_lock.cfa (added)
-
tests/concurrent/unified_locking/spintest.cfa (added)
-
tests/concurrent/unified_locking/test_debug.cfa (added)
-
tests/concurrent/unified_locking/thread_test.cfa (added)
-
tests/concurrent/unified_locking/timeout_lock.cfa (added)
-
tests/concurrent/waitfor/.expect/barge.txt (added)
-
tests/concurrent/waitfor/.expect/dtor.txt (added)
-
tests/concurrent/waitfor/.expect/else.txt (added)
-
tests/concurrent/waitfor/.expect/recurse.txt (added)
-
tests/concurrent/waitfor/.expect/statment.txt (added)
-
tests/concurrent/waitfor/.expect/when.txt (added)
-
tests/concurrent/waitfor/barge.cfa (added)
-
tests/concurrent/waitfor/dtor.cfa (added)
-
tests/concurrent/waitfor/else.cfa (added)
-
tests/concurrent/waitfor/parse.cfa (added)
-
tests/concurrent/waitfor/recurse.cfa (added)
-
tests/concurrent/waitfor/simple.cfa (added)
-
tests/concurrent/waitfor/statment.cfa (added)
-
tests/concurrent/waitfor/when.cfa (added)
-
tests/concurrent/waituntil/.expect/all_types.txt (added)
-
tests/concurrent/waituntil/.expect/basic_else.txt (added)
-
tests/concurrent/waituntil/.expect/channel_close.txt (added)
-
tests/concurrent/waituntil/.expect/channel_zero_size.txt (added)
-
tests/concurrent/waituntil/.expect/channels.txt (added)
-
tests/concurrent/waituntil/.expect/futures.txt (added)
-
tests/concurrent/waituntil/.expect/locks.txt (added)
-
tests/concurrent/waituntil/.expect/one_chan.txt (added)
-
tests/concurrent/waituntil/.expect/timeout.txt (added)
-
tests/concurrent/waituntil/all_types.cfa (added)
-
tests/concurrent/waituntil/basic_else.cfa (added)
-
tests/concurrent/waituntil/channel_close.cfa (added)
-
tests/concurrent/waituntil/channel_zero_size.cfa (added)
-
tests/concurrent/waituntil/channels.cfa (added)
-
tests/concurrent/waituntil/futures.cfa (added)
-
tests/concurrent/waituntil/locks.cfa (added)
-
tests/concurrent/waituntil/one_chan.cfa (added)
-
tests/concurrent/waituntil/timeout.cfa (added)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/Makefile.am
ra01faa98 rb09ca2b 11 11 ## Created On : Sun May 31 08:54:01 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Thu May 25 15:20:04 202314 ## Update Count : 25 913 ## Last Modified On : Fri Jul 16 16:00:40 2021 14 ## Update Count : 255 15 15 ############################################################################### 16 16 … … 59 59 bits/queue.hfa \ 60 60 bits/sequence.hfa \ 61 concurrency/atomic.hfa \62 61 concurrency/iofwd.hfa \ 63 62 concurrency/barrier.hfa \ … … 116 115 concurrency/kernel/fwd.hfa \ 117 116 concurrency/mutex_stmt.hfa \ 118 concurrency/channel.hfa \119 concurrency/actor.hfa117 concurrency/channel.hfa \ 118 concurrency/actor.hfa 120 119 121 120 inst_thread_headers_src = \ … … 128 127 concurrency/monitor.hfa \ 129 128 concurrency/mutex.hfa \ 130 concurrency/select.hfa \129 concurrency/select.hfa \ 131 130 concurrency/thread.hfa 132 131 -
src/AST/Pass.impl.hpp
ra01faa98 rb09ca2b 20 20 #include <unordered_map> 21 21 22 #include "AST/Copy.hpp"23 22 #include "AST/TranslationUnit.hpp" 24 23 #include "AST/TypeSubstitution.hpp" -
src/AST/Print.cpp
ra01faa98 rb09ca2b 16 16 #include "Print.hpp" 17 17 18 #include "Attribute.hpp"19 18 #include "Decl.hpp" 20 19 #include "Expr.hpp" 21 #include "Init.hpp"22 20 #include "Stmt.hpp" 23 21 #include "Type.hpp" 24 22 #include "TypeSubstitution.hpp" 25 23 #include "CompilationState.h" 26 #include "Common/Iterate.hpp" 24 25 #include "Common/utility.h" // for group_iterate 27 26 28 27 using namespace std; -
src/AST/SymbolTable.cpp
ra01faa98 rb09ca2b 18 18 #include <cassert> 19 19 20 #include "Copy.hpp"21 20 #include "Decl.hpp" 22 21 #include "Expr.hpp" -
src/AST/TypeSubstitution.cpp
ra01faa98 rb09ca2b 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Thr May 25 11:24:00 2023 13 // Update Count : 6 14 // 15 12 // Last Modified On : Mon Jun 3 13:26:00 2017 13 // Update Count : 5 14 // 15 16 #include "Type.hpp" // for TypeInstType, Type, StructInstType, UnionInstType 16 17 #include "TypeSubstitution.hpp" 17 18 18 #include "Type.hpp" // for TypeInstType, Type, StructInstType, UnionInstType19 #include "Pass.hpp" // for Pass, PureVisitor, WithGuards, WithVisitorRef20 21 19 namespace ast { 20 21 22 // size_t TypeSubstitution::Substituter::traceId = Stats::Heap::new_stacktrace_id("TypeSubstitution"); 22 23 23 24 TypeSubstitution::TypeSubstitution() { … … 118 119 } 119 120 120 // definitition must happen after PassVisitor is included so that WithGuards can be used121 struct TypeSubstitution::Substituter : public WithGuards, public WithVisitorRef<Substituter>, public PureVisitor {122 //static size_t traceId;123 124 Substituter( const TypeSubstitution & sub, bool freeOnly ) : sub( sub ), freeOnly( freeOnly ) {}125 126 const Type * postvisit( const TypeInstType * aggregateUseType );127 128 /// Records type variable bindings from forall-statements129 void previsit( const FunctionType * type );130 /// Records type variable bindings from forall-statements and instantiations of generic types131 // void handleAggregateType( const BaseInstType * type );132 133 // void previsit( const StructInstType * aggregateUseType );134 // void previsit( const UnionInstType * aggregateUseType );135 136 const TypeSubstitution & sub;137 int subCount = 0;138 bool freeOnly;139 typedef std::unordered_set< TypeEnvKey > BoundVarsType;140 BoundVarsType boundVars;141 };142 143 // size_t TypeSubstitution::Substituter::traceId = Stats::Heap::new_stacktrace_id("TypeSubstitution");144 145 121 void TypeSubstitution::normalize() { 146 122 Pass<Substituter> sub( *this, true ); … … 152 128 } 153 129 } while ( sub.core.subCount ); 154 }155 156 TypeSubstitution::ApplyResult<Node> TypeSubstitution::applyBase(157 const Node * input, bool isFree ) const {158 assert( input );159 Pass<Substituter> sub( *this, isFree );160 const Node * output = input->accept( sub );161 return { output, sub.core.subCount };162 130 } 163 131 -
src/AST/TypeSubstitution.hpp
ra01faa98 rb09ca2b 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : T hr May 25 12:31:00 202313 // Update Count : 1011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Apr 30 22:52:47 2019 13 // Update Count : 9 14 14 // 15 15 … … 46 46 TypeSubstitution &operator=( const TypeSubstitution &other ); 47 47 48 template< typename node_t>48 template< typename SynTreeClass > 49 49 struct ApplyResult { 50 ast::ptr< node_t> node;50 ast::ptr<SynTreeClass> node; 51 51 int count; 52 52 }; 53 53 54 template< typename node_t > 55 ApplyResult<node_t> apply( const node_t * input ) const { 56 ApplyResult<Node> ret = applyBase( input, false ); 57 return { ret.node.strict_as<node_t>(), ret.count }; 58 } 54 template< typename SynTreeClass > ApplyResult<SynTreeClass> apply( const SynTreeClass * input ) const; 55 template< typename SynTreeClass > ApplyResult<SynTreeClass> applyFree( const SynTreeClass * input ) const; 59 56 60 57 template< typename node_t, enum Node::ref_type ref_t > 61 58 int apply( ptr_base< node_t, ref_t > & input ) const { 62 ApplyResult<Node> ret = applyBase( input.get(), false ); 63 input = ret.node.strict_as<node_t>(); 59 const node_t * p = input.get(); 60 auto ret = apply(p); 61 input = ret.node; 64 62 return ret.count; 65 63 } 66 64 67 template< typename node_t >68 ApplyResult<node_t> applyFree( const node_t * input ) const {69 ApplyResult<Node> ret = applyBase( input, true );70 return { ret.node.strict_as<node_t>(), ret.count };71 }72 73 65 template< typename node_t, enum Node::ref_type ref_t > 74 66 int applyFree( ptr_base< node_t, ref_t > & input ) const { 75 ApplyResult<Node> ret = applyBase( input.get(), true ); 76 input = ret.node.strict_as<node_t>(); 67 const node_t * p = input.get(); 68 auto ret = applyFree(p); 69 input = ret.node; 77 70 return ret.count; 78 71 } … … 104 97 // Mutator that performs the substitution 105 98 struct Substituter; 106 ApplyResult<Node> applyBase( const Node * input, bool isFree ) const;107 99 108 100 // TODO: worry about traversing into a forall-qualified function type or type decl with assertions … … 166 158 } // namespace ast 167 159 160 // include needs to happen after TypeSubstitution is defined so that both TypeSubstitution and 161 // PassVisitor are defined before PassVisitor implementation accesses TypeSubstitution internals. 162 #include "Pass.hpp" 163 #include "Copy.hpp" 164 165 namespace ast { 166 167 // definitition must happen after PassVisitor is included so that WithGuards can be used 168 struct TypeSubstitution::Substituter : public WithGuards, public WithVisitorRef<Substituter>, public PureVisitor { 169 static size_t traceId; 170 171 Substituter( const TypeSubstitution & sub, bool freeOnly ) : sub( sub ), freeOnly( freeOnly ) {} 172 173 const Type * postvisit( const TypeInstType * aggregateUseType ); 174 175 /// Records type variable bindings from forall-statements 176 void previsit( const FunctionType * type ); 177 /// Records type variable bindings from forall-statements and instantiations of generic types 178 // void handleAggregateType( const BaseInstType * type ); 179 180 // void previsit( const StructInstType * aggregateUseType ); 181 // void previsit( const UnionInstType * aggregateUseType ); 182 183 const TypeSubstitution & sub; 184 int subCount = 0; 185 bool freeOnly; 186 typedef std::unordered_set< TypeEnvKey > BoundVarsType; 187 BoundVarsType boundVars; 188 189 }; 190 191 template< typename SynTreeClass > 192 TypeSubstitution::ApplyResult<SynTreeClass> TypeSubstitution::apply( const SynTreeClass * input ) const { 193 assert( input ); 194 Pass<Substituter> sub( *this, false ); 195 input = strict_dynamic_cast< const SynTreeClass * >( input->accept( sub ) ); 196 return { input, sub.core.subCount }; 197 } 198 199 template< typename SynTreeClass > 200 TypeSubstitution::ApplyResult<SynTreeClass> TypeSubstitution::applyFree( const SynTreeClass * input ) const { 201 assert( input ); 202 Pass<Substituter> sub( *this, true ); 203 input = strict_dynamic_cast< const SynTreeClass * >( input->accept( sub ) ); 204 return { input, sub.core.subCount }; 205 } 206 207 } // namespace ast 208 168 209 // Local Variables: // 169 210 // tab-width: 4 // -
src/Concurrency/Waituntil.cpp
ra01faa98 rb09ca2b 14 14 // 15 15 16 #include <string> 17 16 18 #include "Waituntil.hpp" 17 18 #include <string>19 20 #include "AST/Copy.hpp"21 19 #include "AST/Expr.hpp" 22 20 #include "AST/Pass.hpp" -
src/ControlStruct/ExceptDeclNew.cpp
ra01faa98 rb09ca2b 18 18 #include <sstream> 19 19 20 #include "AST/Copy.hpp"21 20 #include "AST/Decl.hpp" 22 21 #include "AST/Pass.hpp" -
src/GenPoly/SpecializeNew.cpp
ra01faa98 rb09ca2b 16 16 #include "Specialize.h" 17 17 18 #include "AST/Copy.hpp" // for deepCopy19 18 #include "AST/Inspect.hpp" // for isIntrinsicCallExpr 20 19 #include "AST/Pass.hpp" // for Pass -
src/MakeLibCfaNew.cpp
ra01faa98 rb09ca2b 16 16 #include "MakeLibCfa.h" 17 17 18 #include "AST/Copy.hpp"19 18 #include "AST/Fwd.hpp" 20 19 #include "AST/Pass.hpp" -
src/ResolvExpr/CommonType.cc
ra01faa98 rb09ca2b 21 21 22 22 #include "AST/Decl.hpp" 23 #include "AST/Pass.hpp"24 23 #include "AST/Type.hpp" 25 24 #include "Common/PassVisitor.h" -
src/ResolvExpr/PolyCost.cc
ra01faa98 rb09ca2b 15 15 16 16 #include "AST/SymbolTable.hpp" 17 #include "AST/Pass.hpp"18 17 #include "AST/Type.hpp" 19 18 #include "AST/TypeEnvironment.hpp" -
src/Tuples/Explode.cc
ra01faa98 rb09ca2b 17 17 #include <list> // for list 18 18 19 #include "AST/Pass.hpp" // for Pass20 19 #include "SynTree/Mutator.h" // for Mutator 21 20 #include "Common/PassVisitor.h" // for PassVisitor -
src/Validate/Autogen.cpp
ra01faa98 rb09ca2b 25 25 26 26 #include "AST/Attribute.hpp" 27 #include "AST/Copy.hpp"28 27 #include "AST/Create.hpp" 29 28 #include "AST/Decl.hpp" -
src/Validate/FixQualifiedTypes.cpp
ra01faa98 rb09ca2b 16 16 #include "Validate/FixQualifiedTypes.hpp" 17 17 18 #include "AST/Copy.hpp"19 18 #include "AST/LinkageSpec.hpp" // for Linkage 20 19 #include "AST/Pass.hpp" -
src/Validate/GenericParameter.cpp
ra01faa98 rb09ca2b 16 16 #include "GenericParameter.hpp" 17 17 18 #include "AST/Copy.hpp"19 18 #include "AST/Decl.hpp" 20 19 #include "AST/Expr.hpp" -
src/Validate/ReplaceTypedef.cpp
ra01faa98 rb09ca2b 16 16 #include "ReplaceTypedef.hpp" 17 17 18 #include "AST/Copy.hpp"19 18 #include "AST/Pass.hpp" 20 19 #include "Common/ScopedMap.h" -
src/Virtual/ExpandCasts.cc
ra01faa98 rb09ca2b 20 20 #include <string> // for string, allocator, operator==, ope... 21 21 22 #include "AST/Copy.hpp"23 22 #include "AST/Decl.hpp" 24 23 #include "AST/Expr.hpp" -
src/main.cc
ra01faa98 rb09ca2b 32 32 33 33 #include "AST/Convert.hpp" 34 #include "AST/Pass.hpp" // for pass_visitor_stats35 #include "AST/TranslationUnit.hpp" // for TranslationUnit36 34 #include "AST/Util.hpp" // for checkInvariants 37 35 #include "CompilationState.h" -
tests/.expect/array.txt
ra01faa98 rb09ca2b 1 array.cfa: 105:25: warning: Preprocessor started1 array.cfa:52:25: warning: Compiled -
tests/Makefile.am
ra01faa98 rb09ca2b 11 11 ## Created On : Sun May 31 09:08:15 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Fri May 26 08:23:09202314 ## Update Count : 17 913 ## Last Modified On : Tue May 16 09:27:48 2023 14 ## Update Count : 178 15 15 ############################################################################### 16 16 … … 79 79 avltree/avl-private.h \ 80 80 avltree/avl.h \ 81 concurrent/clib_tls.c \ 82 concurrent/clib.c \ 81 83 configs/.in/parseconfig-all.txt \ 82 84 configs/.in/parseconfig-errors.txt \ … … 87 89 io/.in/many_read.data \ 88 90 meta/fork+exec.hfa \ 89 concurrency/clib_tls.c \ 90 concurrency/clib.c \ 91 concurrency/unified_locking/mutex_test.hfa \ 92 concurrentcy/channels/parallel_harness.hfa 91 concurrent/unified_locking/mutex_test.hfa \ 92 concurrent/channels/parallel_harness.hfa 93 93 94 94 dist-hook: … … 204 204 205 205 SYNTAX_ONLY_CODE = expression typedefRedef variableDeclarator switch numericConstants identFuncDeclarator \ 206 init1 limits nested-types cast labelledExit array quasiKeyword include/stdincludes include/includes builtins/sync warnings/self-assignment concurren cy/waitfor/parse206 init1 limits nested-types cast labelledExit array quasiKeyword include/stdincludes include/includes builtins/sync warnings/self-assignment concurrent/waitfor/parse 207 207 ${SYNTAX_ONLY_CODE} : % : %.cfa ${CFACCBIN} 208 208 ${CFACOMPILE_SYNTAX} … … 211 211 # expected failures 212 212 # use custom target since they require a custom define *and* have a name that doesn't match the file 213 214 array-ERR1 : array.cfa ${CFACCBIN}215 ${CFACOMPILE_SYNTAX} -DERR1216 -cp ${test} ${abspath ${@}}217 218 array-ERR2 : array.cfa ${CFACCBIN}219 ${CFACOMPILE_SYNTAX} -DERR2220 -cp ${test} ${abspath ${@}}221 222 array-ERR3 : array.cfa ${CFACCBIN}223 ${CFACOMPILE_SYNTAX} -DERR3224 -cp ${test} ${abspath ${@}}225 226 213 alloc-ERROR : alloc.cfa ${CFACCBIN} 227 214 ${CFACOMPILE_SYNTAX} -DERR1 -
tests/PRNG.cfa
ra01faa98 rb09ca2b 1 // 1 // -*- Mode: C -*- 2 // 2 3 // Cforall Version 1.0.0 Copyright (C) 2021 University of Waterloo 3 // 4 // PRNG.c -- high-perforamnce pseudo-random numbers 5 // 6 // The contents of this file are covered under the licence agreement in the 7 // file "LICENCE" distributed with Cforall. 8 // 4 // 5 // PRNG.c -- 6 // 9 7 // Author : Peter A. Buhr 10 8 // Created On : Wed Dec 29 09:38:12 2021 11 9 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu May 25 15:39:52202313 // Update Count : 42 210 // Last Modified On : Sun Apr 23 22:02:09 2023 11 // Update Count : 420 14 12 // 15 13 -
tests/array.cfa
ra01faa98 rb09ca2b 15 15 // 16 16 17 // Tests syntax. Comments explain semantics. Test does not show semantics. 18 // Mostly illustrates facts about C (with which CFA is being tested to agree).19 // Is a test oracle under `gcc -x c`.17 int a1[0]; 18 //int a2[*]; 19 //double a4[3.0]; 20 20 21 #ifdef ERR1 22 #define E1(...) __VA_ARGS__ 23 #else 24 #define E1(...) 25 #endif 21 int m1[0][3]; 22 //int m2[*][*]; 23 int m4[3][3]; 26 24 27 #ifdef ERR2 28 #define E2(...) __VA_ARGS__ 29 #else 30 #define E2(...) 31 #endif 25 typedef int T; 32 26 33 #ifdef ERR3 34 #define E3(...) __VA_ARGS__ 35 #else 36 #define E3(...) 37 #endif 27 int fred() { 28 // int a1[]; 29 // int a2[*]; 30 int a4[3]; 31 int T[3]; 32 } 38 33 39 int a1[0]; 40 E1( int a2[*]; ) 41 #ifndef __cforall 42 E1( double a4[3.0]; ) // BUG 275: CFA accepts but should reject 43 #endif 34 int mary( int T[3], 35 int p1[const 3], 36 int p2[static 3], 37 int p3[static const 3] 38 ) { 39 } 44 40 45 int m1[0][3]; 46 E1( int m2[*][*]; ) 47 int m4[3][3]; 41 int (*tom())[3] { 42 } 48 43 49 typedef int T; 50 51 int fred(int n) { 52 E1( int a1[]; ) 53 E1( int a2[*]; ) 54 int a4[3]; 55 int T[3]; 56 int a5[n]; 57 } 58 59 int mary( int T[3], // same as: int *T 60 int p1[const 3], // same as: int const *p1 61 int p2[static 3], // same as T, but length >=3 checked 62 int p3[static const 3] // both above: 3 is static, p3 is const 63 ) { 64 } 65 66 // function taking (), returning pointer to array of ints 67 int (*tom())[3] { 68 } 69 70 // function taking (), returning pointer to function of same type as mary 71 int (*(jane)())( int T[3], 72 int p1[const 3], 73 int p2[static 3], 74 int p3[static const 3] 75 ) { 76 } 77 78 // functions returning same exotic pointers, in CFA's non-onion syntax 79 #ifdef __cforall 80 [ * [3] int ] toms_twin(...) { 81 } 82 [ * [int]( [3] int T, 83 [const 3] int p1, 84 [static 3] int p2, 85 [static const 3] int p3 86 ) 87 ] janes_twin(...) { 88 } 89 #endif 90 91 92 // int fm1( int, int, int[][*] ); // TODO: investigate gcc-11 warning 93 // int fm1( int r, int c, int m[][c] ) {} 94 int fm2( int r, int c, int (*m)[c] ) {} // same as fm1 95 E2( int fm3( int r, int c, int m[][static c] ) {} ) // that's not static 96 E3( int fm4( int r, int c, int m[][] ); ) // m's immediate element type is incomplete 97 int fm5( int, int, int[*][*] ); // same as fm1 decl 98 #ifndef __cforall 99 int fm5( int r, int c, int m[r][c] ) {} // BUG 276: CFA chokes but should accept 100 // C: same as fm1 defn 101 #endif 102 44 int (*(jane)())( int T[3], 45 int p1[const 3], 46 int p2[static 3], 47 int p3[static const 3] 48 ) { 49 } 103 50 104 51 int main() { 105 #pragma GCC warning " Preprocessor started"// force non-empty .expect file, NO TABS!!!52 #pragma GCC warning "Compiled" // force non-empty .expect file, NO TABS!!! 106 53 } 107 54
Note:
See TracChangeset
for help on using the changeset viewer.