Changeset 1dcd52a3
- Timestamp:
- Feb 9, 2018, 11:59:35 AM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 7a052e34
- Parents:
- 538334a
- git-author:
- Rob Schluntz <rschlunt@…> (02/09/18 11:44:40)
- git-committer:
- Rob Schluntz <rschlunt@…> (02/09/18 11:59:35)
- Location:
- src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/Unify.cc
r538334a r1dcd52a3 563 563 flatten( dcl->get_type(), back_inserter( types ) ); 564 564 for ( Type * t : types ) { 565 // outermost const, volatile, _Atomic qualifiers in parameters should not play a role in the unification of function types, since they do not determine whether a function is callable. 566 // Note: MUST consider at least mutex qualifier, since functions can be overloaded on outermost mutex and a mutex function has different requirements than a non-mutex function. 567 t->get_qualifiers() -= Type::Qualifiers(Type::Const | Type::Volatile | Type::Atomic); 568 565 569 dst.push_back( new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::C, nullptr, t, nullptr ) ); 566 570 } -
src/tests/tuple/tupleVariadic.c
r538334a r1dcd52a3 95 95 } 96 96 97 forall(ttype T | { void foo(T); }) void bar(T x) {} 98 void foo(int) {} 99 97 100 int main() { 98 101 array * x0 = new(); … … 117 120 func(3, 2.0, 111, 4.145); 118 121 printf("finished func\n"); 122 123 { 124 // T = [const int] -- this ensures that void(*)(int) satisfies void(*)(const int) 125 const int x; 126 bar(x); 127 } 119 128 } 120 129
Note: See TracChangeset
for help on using the changeset viewer.