ChangeLog-2005 115 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529
  1. 2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2. * cxx-pretty-print.c (pp_cxx_constant): New. Print
  3. string-literal in parens if input program says so.
  4. (pp_cxx_primary_expression): Hand off constant printing to
  5. pp_cxx_constant.
  6. (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
  7. (pp_cxx_expression): Use pp_cxx_constant for literals.
  8. * error.c (dump_expr): Use pp_constant for literals.
  9. 2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
  10. * method.c (make_thunk): Don't set comdat_linkage here.
  11. (use_thunk): Make thunk one only here, if thunk target is
  12. DECL_ONE_ONLY.
  13. 2005-12-26 Mark Mitchell <mark@codesourcery.com>
  14. PR c++/25439
  15. * decl.c (grokdeclarator): Remove dead code.
  16. * ptree.c (cxx_print_xnode): Handle BASELINK.
  17. * parser.c (make_id_declarator): Add sfk parameter.
  18. (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
  19. make_id_declarator.
  20. (cp_parser_declarator_id): Simplify BASELINKs here.
  21. (cp_parser_member_declaration): Adjust calls to
  22. make_id_declarator.
  23. 2005-12-26 Mark Mitchell <mark@codesourcery.com>
  24. PR c++/23171, c++/23172, c++/25417.
  25. * typeck.c (build_unary_op): Create temporary variables for
  26. compound literals whose addresses are taken.
  27. * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
  28. * decl.c (reshape_init_vector): Likewise.
  29. (reshape_init): Give it external linkage.
  30. (check_initializer): Use COMPOUND_LITERAL_P.
  31. (initialize_artificial_var): Allow the initializer to be a
  32. CONSTRUCTOR.
  33. * call.c (make_temporary_var_for_ref_to_temp): Use
  34. create_temporary_var.
  35. * cp-tree.h (COMPOUND_LITERAL_P): New macro.
  36. (rehape_init): Declare.
  37. * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
  38. * semantics.c (finish_compound_literal): Use reshape_init.
  39. 2005-12-23 Mark Mitchell <mark@codesourcery.com>
  40. PR c++/24671
  41. * pt.c (instantiate_template): Handle SFINAE.
  42. 2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  43. * decl.c (grokdeclarator): Improve diagnostic for friend
  44. declarations of class members.
  45. 2005-12-22 Mark Mitchell <mark@codesourcery.com>
  46. PR c++/25369
  47. * tree.c (really_overloaded_fn): Tweak comment.
  48. * pt.c (tsubst_call_declarator_parms): Remove.
  49. (tsubst_copy): Call mark_used on the member referenced by an
  50. OFFSET_REF.
  51. * semantics.c (finish_qualified_id_expr): Simplify.
  52. * decl2.c (mark_used): Accept BASELINKs.
  53. PR c++/25364
  54. * typeck.c (build_unary_op): Pass DECLs not names to
  55. build_offset_refs.
  56. * init.c (build_offset_ref): Do not do name lookup. Do not call
  57. mark_used.
  58. * call.c (build_call): Simplify and tidy.
  59. * semantics.c (finish_qualified_id_expr): Call mark_used.
  60. 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  61. PR c++/23333
  62. * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
  63. identify a single '0'.
  64. 2005-12-20 Mark Mitchell <mark@codesourcery.com>
  65. PR c++/21228
  66. * decl.c (use_eh_spec_block): New function.
  67. (store_parm_decls): Use it.
  68. (finish_function): Likewise.
  69. 2005-12-19 Mark Mitchell <mark@codesourcery.com>
  70. PR c++/24278
  71. * init.c (expand_member_init): Print messages about baseclasses
  72. using %T rather than %D.
  73. PR c++/24915
  74. * class.c (add_method): Do not treat templates as identical unless
  75. their return types are the same.
  76. 2005-12-12 Mark Mitchell <mark@codesourcery.com>
  77. PR c++/25300
  78. * tree.c (build_qualified_name): Return error_mark_node for
  79. erroneous input.
  80. 2005-12-10 Mark Mitchell <mark@codesourcery.com>
  81. PR c++/25337
  82. * pt.c (tsubst_copy_and_build): Permit dependent types for the
  83. object in a class member access expression.
  84. 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
  85. PR java/9861
  86. * mangle.c (write_bare_function_type): Mangle return type for
  87. methods of Java classes
  88. 2005-12-08 Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
  89. * call.c (build_conditional_expr): Print types in error messages.
  90. 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  91. * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
  92. 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  93. * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
  94. 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
  95. * Make-lang.in (c++.all.build, c++.install-normal): Remove.
  96. 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
  97. * Make-lang.in: Remove all dependencies on s-gtype.
  98. 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
  99. PR C++/24138
  100. * decl.c (reshape_init_array_1): Handle max_index of -1.
  101. 2005-12-06 Roger Sayle <roger@eyesopen.com>
  102. * typeck.c (build_binary_op): Issue warning if either operand of a
  103. comparison operator is a string literal, except for testing equality
  104. or inequality against NULL.
  105. 2005-12-06 Roger Sayle <roger@eyesopen.com>
  106. PR c++/25263
  107. * decl.c (compute_array_index_type): Check that itype is an
  108. INTEGER_CST node before testing/clearing TREE_OVERFLOW.
  109. 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
  110. * ptree.c (cxx_print_decl): Update to check for decl_common
  111. structure.
  112. 2005-12-02 Mark Mitchell <mark@codesourcery.com>
  113. PR c++/24173
  114. * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
  115. clobbering newdecl.
  116. 2005-12-02 Richard Guenther <rguenther@suse.de>
  117. * semantics.c (simplify_aggr_init_expr): Use buildN instead
  118. of build.
  119. 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
  120. * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
  121. ggc_realloc.
  122. (cp_parser_template_argument_list): Use XRESIZEVEC instead of
  123. xrealloc.
  124. * class.c (pushclass): Likewise.
  125. 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
  126. * decl2.c (get_priority_info): Use XNEW, not xmalloc.
  127. * decl.c (push_switch): Likewise.
  128. * lex.c (handle_pragma_implementation): Likewise.
  129. * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
  130. not ggc_alloc.
  131. (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
  132. * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
  133. * g++spec.c (lang_specific_driver): Likewise.
  134. * mangle.c (save_partially_mangled_name): Likewise.
  135. * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
  136. (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
  137. (cp_parser_sizeof_operand): Likewise.
  138. * repo.c (open_repo_file, open_repo_file): Likewise.
  139. 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
  140. * parser.c (cp_parser_make_typename_type): Call make_typename_type
  141. with tf_none instead of magic value 0.
  142. (cp_parser_explicit_instantiation): Call do_type_instantiation
  143. with tf_error instead of magic value 1.
  144. (cp_parser_elaborated_type_specifier): Call make_typename_type
  145. with tf_error instead of magic value 1.
  146. (cp_parser_class_name): Likewise.
  147. (cp_parser_lookup_name): Likewise.
  148. 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
  149. * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
  150. not RID_MAX.
  151. 2005-11-30 Jason Merrill <jason@redhat.com>
  152. PR c++/21123
  153. * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
  154. parms in a thunk.
  155. 2005-11-30 Ben Elliston <bje@au.ibm.com>
  156. * typeck.c (build_x_unary_op): Correct spelling in error message.
  157. 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
  158. PR c++/21166
  159. * class.c (check_field_decls): Only set DECL_PACKED on a field
  160. when its natural alignment is > BITS_PER_UNIT.
  161. 2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  162. PR c++/24979
  163. * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
  164. 2005-11-26 Richard Henderson <rth@redhat.com>
  165. * lex.c: Update for pragma_lex rename.
  166. * parser.c: Likewise.
  167. 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  168. PR c++/9278
  169. * decl.c (grokparms): Do not allow typedef-names in a '(void)'
  170. parmlist.
  171. 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  172. * typeck2.c (process_init_constructor_union): Remove check for
  173. unnamed union members.
  174. 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  175. * name-lookup.c (lookup_name_real): Merge two if's.
  176. 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  177. * pt.c (instantiate_class_template): Clean-up.
  178. 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  179. * pt.c (template_class_depth_real): Remove. Move functionality to ...
  180. (template_class_depth): ... here, replacing count_specializations
  181. with 0. Adjust comment.
  182. 2005-11-24 Richard Guenther <rguenther@suse.de>
  183. Dirk Mueller <dmueller@suse.de>
  184. PR c++/14024
  185. * typeck.c (build_reinterpret_cast_1): Use
  186. strict_aliasing_warning.
  187. 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
  188. PR c++/24235
  189. * pt.c (check_instantiated_args): Reword diagnostic message about
  190. template argument involving local types.
  191. 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
  192. PR c++/21667
  193. * typeck.c (build_array_ref): Avoid code duplicate. Use common
  194. C/C++ diagnostic function warn_array_subscript_with_type_char.
  195. 2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
  196. PR c++/22238
  197. * error.c (resolve_virtual_fun_from_obj_type_ref): New.
  198. (dump_expr): Use it in <case CALL_EXPR>.
  199. 2005-11-21 Richard Henderson <rth@redhat.com>
  200. * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
  201. * name-lookup.c (lookup_name): Remove prefer_type argument.
  202. (lookup_name_prefer_type): New.
  203. * decl.c (lookup_and_check_tag): Use them.
  204. * pt.c (tsubst_friend_class): Likewise.
  205. (lookup_template_class): Likewise.
  206. (tsubst_copy_and_build): Likewise.
  207. * name-lookup.h (lookup_name_prefer_type): New.
  208. (lookup_name): Remove declaration.
  209. 2005-11-18 Mark Mitchell <mark@codesourcery.com>
  210. PR c++/8355
  211. * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
  212. set_decl_namespace.
  213. * name-lookup.c (set_decl_namespace):
  214. 2005-11-18 Mike Stump <mrs@apple.com>
  215. * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
  216. * name-lookup.c (lookup_name_two): Remove.
  217. (lookup_name_one): Add.
  218. * name-lookup.h (lookup_name_two): Remove.
  219. (lookup_name_one): Add.
  220. 2005-11-15 Jason Merrill <jason@redhat.com>
  221. PR c++/24580
  222. * method.c (locate_copy): Also use skip_artificial_parms here.
  223. (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
  224. for RECORD_TYPE.
  225. (locate_ctor): Abort if we fail to find a default constructor.
  226. 2005-11-15 Mike Stump <mrs@apple.com>
  227. * name-lookup.c (lookup_name_two): Add.
  228. * name-lookup.h: Likewise.
  229. 2005-11-15 Mark Mitchell <mark@codesourcery.com>
  230. PR c++/24667
  231. * typeck.c (check_for_casting_away_constness): Use the diag_fn.
  232. (build_const_cast_1): Call it, for C-style casts.
  233. 2005-11-14 Mark Mitchell <mark@codesourcery.com>
  234. PR c++/24687
  235. * pt.c (check_explicit_specialization): Don't check for C linkage.
  236. (push_template_decl_real): Likewise.
  237. * parser.c (cp_parser_explicit_specialization): Check here.
  238. (cp_parser_template_declaration_after_export): And here.
  239. * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
  240. field.
  241. 2005-11-14 Jason Merrill <jason@redhat.com>
  242. PR c++/24580
  243. * method.c (locate_ctor): Skip all artificial parms, not just
  244. 'this'.
  245. 2005-11-14 Mark Mitchell <mark@codesourcery.com>
  246. * parser.c (eof_token): Add initializer for ambiguous_p.
  247. 2005-11-13 Mark Mitchell <mark@codesourcery.com>
  248. PR c++/24817
  249. * decl.c (check_redeclaration_exception_specification): New
  250. function.
  251. (duplicate_decls): Use it.
  252. * error.c (fndecl_to_string): Print the template parameter list.
  253. PR c++/20293
  254. * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
  255. for namespaces.
  256. (pp_cxx_original_namespace_definition): Likewise.
  257. * name-lookup.c (ambiguous_decl): Don't issue error messages;
  258. instead return lists of ambiguous candidates.
  259. (select_decl): Handle ambiguous namespace lookups.
  260. * parser.c (cp_token): Add ambiguous_p.
  261. (cp_lexer_get_preprocessor_token): Set it.
  262. (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
  263. when a qualified name uses an invalid scope.
  264. (cp_parser_primary_expression): Print ambiguous candidates.
  265. (cp_parser_type_parameter): Adjust comment to reflect new
  266. parameter name for cp_parser_lookup_name.
  267. (cp_parser_template_argument): Likewise.
  268. (cp_parser_elaborated_type_specifier): Likewise.
  269. (cp_parser_namespace_name): Likewise.
  270. (cp_parser_class_name): Print ambiguous candidates.
  271. (cp_parser_lookup_name): Rename ambiguous_p parameter to
  272. ambiguous_decls. Use it to return a list of ambiguous candiates
  273. when a lookup is ambiguous.
  274. (cp_parser_lookup_name_simple): Adjust comment to reflect new
  275. parameter name for cp_parser_lookup_name.
  276. 2005-11-12 Jakub Jelinek <jakub@redhat.com>
  277. PR c++/24780
  278. * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
  279. and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
  280. of array type.
  281. PR c++/24761
  282. * pt.c (tsubst_copy_asm_operands): New function.
  283. (tsubst_expr) <case ASM_EXPR>: Use it.
  284. 2005-11-08 Jakub Jelinek <jakub@redhat.com>
  285. PR c++/19450
  286. * decl.c (redeclaration_error_message): Issue diagnostics about
  287. olddecl and newdecl disagreement on __thread property.
  288. (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
  289. 2005-11-08 Jason Merrill <jason@redhat.com>
  290. PR c++/21123
  291. * method.c (use_thunk): Use build_cplus_new instead of
  292. force_target_expr.
  293. 2005-11-06 Jason Merrill <jason@redhat.com>
  294. James A. Morrison <phython@gcc.gnu.org>
  295. PR c++/17256
  296. * decl2.c (cp_finish_file): Fix conditions for undefined warning.
  297. Set TREE_NO_WARNING instead of TREE_PUBLIC.
  298. * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
  299. a warning on a function we didn't instantiate because of excessive
  300. recursion.
  301. 2005-11-06 Mark Mitchell <mark@codesourcery.com>
  302. * class.c (record_subobject_offsets): Don't record offsets past
  303. biggest empty class for non-empty base classes.
  304. (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
  305. keeping track of the size of emptyclasses.
  306. PR c++/21308
  307. * class.c (sizeof_biggest_empty_class): New variable.
  308. (record_subobject_offsets): Don't record offsets past biggest
  309. empty class for data members. Replace vbases_p parameter with
  310. is_data_member parameter.
  311. (build_base_field): Adjust call.
  312. (layout_class_type): Likewise. Maintain
  313. sizeof_biggest_empty_class.
  314. 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
  315. * decl2.c, init.c, typeck.c: Fix comment typos.
  316. 2005-11-04 Richard Guenther <rguenther@suse.de>
  317. PR c++/22487
  318. * init.c (build_vec_init): Build comparison of matching
  319. types.
  320. 2005-11-03 Josh Conner <jconner@apple.com>
  321. PR c++/19989
  322. pt.c (tsubst): Accept zero-length array if tf_error is set
  323. in complain flags. Change error message for negative-
  324. length array.
  325. 2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
  326. * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
  327. parameter.
  328. 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
  329. PR c++/17964
  330. * error.c (cp_cpp_error): New function.
  331. * cp-tree.h (cp_cpp_error): Declare.
  332. * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
  333. and error callback after lexing.
  334. 2005-11-03 Mark Mitchell <mark@codesourcery.com>
  335. PR c++/21627
  336. * pt.c (register_specialization): Update inline flags on clones.y
  337. 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
  338. PR c++/24582
  339. * decl.c (declare_local_label): Return 0 for variables
  340. with error_mark_node as their types.
  341. 2005-11-02 Mark Mitchell <mark@codesourcery.com>
  342. PR c++/22434
  343. * call.c (build_conditional_expr): Do bad conversions, if there's
  344. no other choice.
  345. PR c++/24560
  346. * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
  347. message for use of overloaded functions on LHS of "." operator.
  348. PR c++/19253
  349. * parser.c (cp_parser_postfix_expression): Use
  350. cp_parser_elaborated_type_specifier to handle typename-types in
  351. functional casts.
  352. (cp_parser_enclosed_argument_list): Skip ahead to the end of the
  353. template argument list if the closing ">" is not found.
  354. PR c++/24569
  355. * pt.c (instantiate_decl): Use cp_finish_decl, not
  356. finish_static_data_member_decl.
  357. 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
  358. * decl.c (grokfndecl): Remove the setting
  359. of the return type of the function type
  360. of main after erroring about must returning
  361. int.
  362. 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
  363. PR C++/23229
  364. * decl.c (grokfndecl): Create a new function type
  365. after erroring out about main not returning int.
  366. 2005-10-28 Josh Conner <jconner@apple.com>
  367. PR c++/22153
  368. * parser.c (cp_parser_member_declaration): Detect and handle
  369. a template specialization.
  370. 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
  371. PR C++/23426
  372. * decl.c (start_decl): Check that the decl is an
  373. error_mark_node before getting the type.
  374. Remove the check for the decl's type being an
  375. error_mark_node.
  376. 2005-10-21 Mark Mitchell <mark@codesourcery.com>
  377. PR c++/24260
  378. * parser.c (cp_parser_init_declarator): Pass attributes to
  379. grokfield.
  380. 2005-10-20 Mark Mitchell <mark@codesourcery.com>
  381. PR c++/22618
  382. * search.c (accessible_p): Check access in the outermost set of
  383. template parameters.
  384. 2005-10-20 Richard Guenther <rguenther@suse.de>
  385. * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
  386. 2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  387. PR c++/22293
  388. * decl.c (grokdeclarator): Reject unqualified destructors in
  389. friend declarations.
  390. 2005-10-18 Mark Mitchell <mark@codesourcery.com>
  391. PR c++/23293
  392. * pt.c (convert_template_argument): Use canonical type variants in
  393. template specializations.
  394. 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
  395. PR c++/21383
  396. * name-lookup.c (arg_assoc): Template args can be null in a
  397. template-id-expr.
  398. PR c++/22604
  399. * class.c (update_vtable_entry_for_fn): Don't process invalid
  400. covariant overriders.
  401. PR c++/23118
  402. * cp-tree.h (add_method): Add return value.
  403. * class.c (add_method): Return success indicator.
  404. * semantics.c (finish_member_declaration): Don't add an invalid
  405. method to the method list.
  406. 2005-10-17 Mark Mitchell <mark@codesourcery.com>
  407. PR c++/21908
  408. * call.c (build_new_method_call): Do not show VTT parameters to
  409. the user.
  410. 2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  411. PR c++/23440
  412. * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
  413. only complain about missing statement.
  414. 2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
  415. PR c++/24386
  416. * cp-tree.h (BASELINK_QUALIFIED_P): New.
  417. * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
  418. * typeck.c (finish_class_member_access_expr): Set it.
  419. PR c++/21353
  420. * decl.c (check_default_argument): Don't check
  421. processing_template_decl or uses_template_parms here.
  422. (grokparms): Only call check_default_argument when not processing
  423. a template decl.
  424. * parser.c (cp_parser_late_parsing_default_arg): Call
  425. check_default_argument when not processing a template decl.
  426. 2005-10-16 Mark Mitchell <mark@codesourcery.com>
  427. PR c++/24389
  428. * decl2.c (mark_used): Use uses_template_parms instead of
  429. dependent_type_p.
  430. * init.c (constant_value_1): Handle uninstantiated templates
  431. specially.
  432. * pt.c (instantiate_decl): Add sanity check.
  433. 2005-10-16 Mark Mitchell <mark@codesourcery.com>
  434. PR c++/22173
  435. * typeck.c (check_template_keyword): Fix thinko.
  436. 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
  437. PR c++/23959
  438. * decl.c (pop_switch): Only call c_do_switch_warnings
  439. when not processing templates.
  440. 2005-10-16 Mark Mitchell <mark@codesourcery.com>
  441. PR c++/22173
  442. * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
  443. (check_template_keyword): New function.
  444. (finish_id_expression): Change prototoype.
  445. (finish_qualified_id_expr): Change prototype.
  446. (build_qualified_name): New function.
  447. (finish_class_member_access_expr): Change prototype.
  448. * init.c (build_offset_ref): Use build_qualified_name.
  449. * mangle.c (write_expression): Likewise.
  450. * parser.c (cp_parser_primary_expression): Remove qualifying_class
  451. parameter. Add address_p and template_arg_p. Use
  452. build_qualified_name.
  453. (cp_parser_id_expression): Default *template_p to
  454. template_keyword_p. Check for invalid uses of the template
  455. keyword.
  456. (cp_parser_postfix_expression): Eliminate special handling for
  457. qualified names. Adjust call to cp_parser_primary_expression.
  458. (cp_parser_postfix_dot_deref_expression): Adjust call to
  459. cp_parser_id_expression and finish_class_member_access_expr.
  460. (cp_parser_template_argument_list): Add comment.
  461. (cp_parser_template_argument): Adjust use of
  462. cp_parser_primary_expression. Remove call to
  463. finish_qualified_id_expr.
  464. (cp_parser_lookup_name): Use build_qualified_name.
  465. * pt.c (tsubst): Use build_qualified_name.
  466. (tsubst_qualified_id): Likewise. Adjust call to
  467. finish_qualified_id_expr.
  468. (tsubst_copy): Use build_qualified_name.
  469. (tsubst_copy_and_build): Adjusts call to finish_id_expression and
  470. finish_class_member_access_expr.
  471. * semantics.c (finish_non_static_data_member): Use
  472. build_qualified_name.
  473. (finish_qualified_id_expr): Add template_p and template_arg_p
  474. parameters.
  475. (finish_id_expression): Remove qualifiying_class parameter. Add
  476. template_p, done, address_p, and template_arg_p. Use
  477. build_qualified_name. Adjust calls to
  478. finish_class_member_acess_expr.
  479. * tree.c (build_qualified_name): New function.
  480. * typeck.c (check_template_keyword): New function.
  481. (finish_class_member_access_expr): Add template_p argument. Check
  482. for invalid uses of the template keyword.
  483. 2005-10-15 Mark Mitchell <mark@codesourcery.com>
  484. PR c++/21347
  485. * class.c (maybe_warn_about_overly_private_class): Lazy
  486. constructors are public.
  487. 2005-10-14 Mark Mitchell <mark@codesourcery.com>
  488. PR c++/19565
  489. * call.c (convert_like_real): Rely on convert_and_check to issue
  490. warnings about overflow and conversion to unsigned.
  491. * decl.c (finish_enum): Use the location of the enumerators, not
  492. the closing brace of the enumeration, when reporting warnings
  493. about conversions.
  494. (build_enumerator): Use error_mark_node for erroneous values.
  495. * typeck2.c (digest_init): Remove reference to "signature pointer"
  496. from comment.
  497. 2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
  498. PR c++/17796
  499. * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
  500. (maybe_clone_body): Track the first clone.
  501. 2005-10-13 Nathan Sidwell <nathan@codesourcery.com>
  502. PR c++/23984
  503. * class.c (build_base_path): The vtable is always the first thing
  504. in the vtt.
  505. 2005-10-13 Mark Mitchell <mark@codesourcery.com>
  506. PR c++/20721
  507. * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
  508. * decl.c (duplicate_decls): Merge it into new declarations.
  509. (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
  510. (cp_finish_decl): Set it, when appropriate.
  511. PR c++/22180
  512. * call.c (build_new_method_call): Correct pretty-printing of
  513. destructor names.
  514. * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
  515. identifier.
  516. PR c++/23694
  517. * decl.c (start_method): Return error_mark_node for errors.
  518. PR c++/23307
  519. * pt.c (push_template_decl_real): Complain about attempts to
  520. declare template variables.
  521. PR c++/22352
  522. * pt.c (tsubst_template_parms): Set processing_template_decl while
  523. processing the parameters.
  524. (tsubst_decl): Set processing_template_decl when substituting into
  525. a TEMPLATE_DECL.
  526. PR c++/22405
  527. * pt.c (most_specialized_instantiation): Robustify.
  528. PR c++/22464
  529. * semantics.c (finish_id_expression): Issue errors about uses of
  530. local variables in containing functions even in templates.
  531. 2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
  532. PR target/21801
  533. PR target/23589
  534. * class.c (finish_struct_1): Call
  535. targetm.cxx.adjust_class_at_definition.
  536. 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
  537. PR c++/21592
  538. * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
  539. with already looked up member functions. Assert we're not
  540. returning a NON_DEPENDENT_EXPR with unknown type.
  541. * typeck.c (finish_class_member_access_expr): We can get
  542. non-template-id-expr baselinks. If the lookup finds a baselink,
  543. remember it even inside templates.
  544. PR c++/23797
  545. * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
  546. TYPE_DECL. Use dependent_type_p to check type.
  547. * pt.c (uses_template_parms_p): Use dependent_type_p for a
  548. TYPE_DECL.
  549. (type_dependent_expression_p): Assert we've not been given a
  550. TYPE_DECL.
  551. PR c++/21117
  552. * decl.c (check_function_type): Correctly overwrite incomplete
  553. return type with void type.
  554. * typeck.c (check_return_expr): If the function's return type is
  555. void, don't try and convert a return expr.
  556. 2005-10-12 David Edelsohn <edelsohn@gnu.org>
  557. PR c++/23730
  558. * call.c (build_object_call): If BINFO is NULL, bypass
  559. lookup_fnfields and set fns to NULL_TREE.
  560. 2005-10-12 Paolo Bonzini <bonzini@gnu.org>
  561. PR c++/24052
  562. * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
  563. an ADDR_EXPR of a LABEL_DECL as &&.
  564. 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
  565. PR c++/19964
  566. * class.c (walk_subobject_offsets): Don't walk error_mark_node.
  567. 2005-10-11 Ian Lance Taylor <ian@airs.com>
  568. PR c++/8057
  569. * cvt.c (convert_to_void): Don't warn about unused values when
  570. processing a template declaration.
  571. 2005-10-11 Mark Mitchell <mark@codesourcery.com>
  572. PR c++/21089
  573. * call.c (convert_like_real): Use decl_constant_value, not
  574. integral_constant_value.
  575. * init.c (constant_value_1): New function.
  576. (integral_constant_value): Use it.
  577. (decl_constant_value): Likewise.
  578. * typeck.c (decay_conversion): Use decl_constant_value, not
  579. integral_constant_value.
  580. PR c++/21369
  581. * parser.c (cp_parser_elaborated_type_specifier): Don't treat
  582. class types as templates if the type is not appearing as part of a
  583. type definition or declaration.
  584. 2005-10-10 Mark Mitchell <mark@codesourcery.com>
  585. PR c++/24277
  586. * pt.c (instantiate_decl): Call finish_static_data_member_decl for
  587. static data members.
  588. 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
  589. Mark Mitchell <mark@codesourcery.com>
  590. PR c++/23437
  591. * parser.c (cp_parser_template_argument_list): Do not treat
  592. contents of argument list as part of a constant expression.
  593. 2005-10-10 Mark Mitchell <mark@codesourcery.com>
  594. PR c++/24139
  595. * decl.c (grokdeclarator): Do not require template parameter lists
  596. for explicitly specialized class.
  597. * error.c (dump_aggr_type): Do not dump template arguments for
  598. non-primary specializations.
  599. (dump_function_name): Likewise.
  600. PR c++/24275
  601. * pt.c (instantiate_decl): Instantiate the initializer of
  602. a static data member in the namespace containing the class
  603. containing the static data member.
  604. 2005-10-08 James A. Morrison <phython@gcc.gnu.org>
  605. PR c++/22172
  606. * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
  607. scopes as nondependent.
  608. 2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  609. * call.c (resolve_args): Remove redundant test.
  610. 2005-10-05 Paolo Bonzini <bonzini@gnu.org>
  611. PR tree-optimization/21419
  612. PR tree-optimization/24146
  613. PR tree-optimization/24151
  614. * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
  615. read-only. Set ASM_VOLATILE_P for asms without outputs.
  616. 2005-10-05 Nathan Sidwell <nathan@codesourcery.com>
  617. PR c++/23513
  618. * call.c (joust): Adjust length count to more_specialized_fn.
  619. * pt.c (more_specialized_fn): Cope with non-static member vs
  620. non-member.
  621. 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
  622. PR middle-end/23125
  623. * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
  624. instead of change_decl_assembler_name.
  625. 2005-10-03 Alexandre Oliva <aoliva@redhat.com>
  626. * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
  627. 2005-10-03 Mark Mitchell <mark@codesourcery.com>
  628. PR c++/17775
  629. * repo.c: Include flags.h.
  630. (finish_repo): Add -frandom-seed to the arguments.
  631. 2005-10-02 Mark Mitchell <mark@codesourcery.com>
  632. PR c++/22621
  633. * parser.c (cp_parser_template_argument): Don't turn "T::f" into
  634. "(*this).T::f".
  635. * pt.c (convert_nontype_argument): Remove ??? comment.
  636. PR c++/23840
  637. * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
  638. when class rvalues are lvalues.
  639. 2005-09-28 Mark Mitchell <mark@codesourcery.com>
  640. PR c++/16782
  641. * decl.c (grokdeclarator): Always pedwarn about overqualified
  642. member names.
  643. 2005-09-27 Mark Mitchell <mark@codesourcery.com>
  644. PR c++/22147
  645. * name-lookup.c (maybe_process_template_type_declaration): Don't
  646. treat forward declarations of classes as templates just because
  647. we're processing_template_decl.
  648. * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
  649. functions.
  650. 2005-09-26 Jason Merrill <jason@redhat.com>
  651. PR c++/13764
  652. * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
  653. * name-lookup.c (pushdecl_maybe_friend): Check it.
  654. * decl.c (begin_function_body): Do nothing if it's false.
  655. (finish_function_body): Ditto.
  656. (outer_curly_brace_block): New fn.
  657. (finish_function): Use it.
  658. 2005-09-26 Richard Guenther <rguenther@suse.de>
  659. PR middle-end/15855
  660. * decl2.c (do_static_destruction): Remove.
  661. (finish_static_initialization_or_destruction): Likewise.
  662. (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
  663. (NEEDS_GUARD_P): Likewise.
  664. (do_static_initialization): Rename to
  665. do_static_initialization_or_destruction. Process all
  666. initializers/destructors and handle common conditionalizing.
  667. (start_static_initialization_or_destruction): Rename to
  668. one_static_initialization_or_destruction. Handle only
  669. decl-specific conditionalizing.
  670. (cp_finish_file): Call do_static_initialization_or_destruction.
  671. 2005-09-22 Jakub Jelinek <jakub@redhat.com>
  672. PR c++/21983
  673. * class.c (find_final_overrider): Move diagnostic about no unique final
  674. overrider to...
  675. (update_vtable_entry_for_fn): ... here.
  676. 2005-09-21 Mark Mitchell <mark@codesourcery.com>
  677. PR c++/23993
  678. * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
  679. 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  680. PR c++/23965
  681. * call.c (resolve_args): Return error_mark_node on arguments
  682. whose TREE_TYPE is error_mark_node.
  683. 2005-09-20 Jakub Jelinek <jakub@redhat.com>
  684. PR c++/23947
  685. * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
  686. get_tinfo_ptr calls.
  687. 2005-09-16 Mark Mitchell <mark@codesourcery.com>
  688. PR c++/23914
  689. * parser.c (cp_parser_enclosed_template_argument_list): Make sure
  690. skip_evaluation is false when processing template arguments.
  691. PR c++/21514
  692. * pt.c (check_instantiated_args): Treat uses of anonymous types as
  693. causing type-deduction failure.
  694. 2005-09-15 Jason Merrill <jason@redhat.com>
  695. PR c++/23357
  696. * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
  697. tcc_expression.
  698. 2005-09-15 Mark Mitchell <mark@codesourcery.com>
  699. PR c++/23896
  700. * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
  701. processing template arguments.
  702. * pt.c (check_explicit_instantiation_namespace): Fix typo.
  703. PR c++/13140
  704. * decl.c (check_class_member_definition_namespace): New function.
  705. (grokfndecl): Use it.
  706. (grokvardecl): Likewise.
  707. (grokdecl): Improve documentation.
  708. * pt.c (check_explicit_instantiation_namespace): New function.
  709. (register_specialization): Call check_specialization_namespace
  710. when replacing an implicitly instantiated function.
  711. (check_explicit_specialization): Ensure that DECL_CONTEXT is set
  712. correctly for namespace-scope specializations.
  713. (do_decl_instantiation): Use
  714. check_explicit_instantiation_namespace.
  715. (do_type_instantiation): Likewise.
  716. 2005-09-15 Nathan Sidwell <nathan@codesourcery.com>
  717. PR c++/23725
  718. * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
  719. 2005-09-13 Bastian Blank <waldi@debian.org>
  720. PR c++/16171
  721. * mangle.c (find_substitution): Do not use special substitutions
  722. for identifiers not in std::.
  723. 2005-09-13 Mark Mitchell <mark@codesourcery.com>
  724. PR c++/23839
  725. * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
  726. for VAR_DECLs.
  727. 2005-09-13 Mark Mitchell <mark@codesourcery.com>
  728. PR c++/23842
  729. * pt.c (tsubst_default_argument): Do treat default argument
  730. expressions as occurring in the context of the function called.
  731. 2005-09-12 Mark Mitchell <mark@codesourcery.com>
  732. PR c++/23841
  733. * parser.c (cp_parser_primary_expression): Recognize the closing
  734. ">" of a template-argument-list after a floating-point literal as
  735. the end of a cast expression.
  736. 2005-09-12 Mark Mitchell <mark@codesourcery.com>
  737. PR c++/23789
  738. * cvt.c (perform_qualification_conversions): Don't create
  739. unnecessary NOP_EXPRs.
  740. * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
  741. 2005-09-12 Ian Lance Taylor <ian@airs.com>
  742. PR g++/7874
  743. * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
  744. bitfield. Make dummy bitfield one bit smaller.
  745. (DECL_HIDDEN_FRIEND_P): Define.
  746. (pushdecl_maybe_friend): Declare.
  747. (pushdecl_top_level_maybe_friend): Declare.
  748. * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
  749. Change prototype and all callers. Add assertion that a
  750. DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set
  751. DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
  752. appropriate.
  753. * name-lookup.c (supplement_binding): Don't ignore a
  754. DECL_HIDDEN_FRIEND_P.
  755. (pushdecl_maybe_friend): Break out contents of pushdecl. Add
  756. is_friend parameter. Set DECL_ANTICIPATED and
  757. DECL_HIDDEN_FRIEND_P for a friend function.
  758. (pushdecl): Just call pushdecl_maybe_friend.
  759. (pushdecl_with_scope): Add is_friend parameter. Change prototype
  760. and all callers.
  761. (pushdecl_namespace_level): Likewise.
  762. (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as
  763. well as DECL_ANTICIPATED when checking for a builtin.
  764. (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
  765. DECL_ANTICIPATED when checking for a builtin.
  766. (do_nonmember_using_decl): Likewise.
  767. (pushdecl_top_level_1): Add is_friend parameter. Change all
  768. callers.
  769. (pushdecl_top_level_maybe_friend): New function.
  770. (remove_hidden_names): New function.
  771. (struct arg_lookup): Add args field.
  772. (friend_of_associated_class_p): New static function.
  773. (arg_assoc_namespace): Ignore hidden functions which are not
  774. friends of an associated class of some argument.
  775. (lookup_arg_dependent): Remove hidden functions from list passed
  776. in. Initialize k.args.
  777. * name-lookup.h (remove_hidden_names): Declare.
  778. * friend.c (do_friend): Call pushdecl_maybe_friend instead of
  779. pushdecl.
  780. * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
  781. an assertion, with a check for DECL_HIDDEN_FRIEND_P.
  782. (build_new_function_call): Add koenig_p parameter. Change
  783. prototype and callers.
  784. * pt.c (register_specialization): Add is_friend parameter. Change
  785. all callers.
  786. (push_template_decl_real): Change is_friend parameter to bool.
  787. Change prototype and all callers.
  788. (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
  789. instead of pushdecl_top_level.
  790. 2005-09-11 Richard Henderson <rth@redhat.com>
  791. * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
  792. * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
  793. 2005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
  794. * parser.c (cp_parser_translation_unit): Simplify. The while-block
  795. was actually executed at most once.
  796. 2005-09-09 Richard Henderson <rth@redhat.com>
  797. PR debug/20998
  798. * cp-tree.def (ALIAS_DECL): Remove.
  799. * cp-lang.c (cp_init_ts): Remove support for it.
  800. * error.c (dump_decl): Likewise.
  801. * name-lookup.c (pushdecl): Likewise.
  802. * semantics.c (finish_id_expression): Likewise.
  803. * decl2.c (build_anon_union_vars): Use a VAR_DECL with
  804. DECL_VALUE_EXPR instead.
  805. 2005-09-09 Mark Mitchell <mark@codesourcery.com>
  806. PR c++/22252
  807. * decl.c (start_preparsed_function): Do not pay attention to
  808. #pragma interface for implicitly-defined methods.
  809. * decl2.c (cp_finish_file): Do not complain about uses of inline
  810. functions that have bodies, even if we decided not to emit the
  811. body in this translation unit.
  812. * semantics.c (note_decl_for_pch): Do not mess with linkage.
  813. (expand_or_defer_fn): Make inline, non-template functions COMDAT
  814. at this point.
  815. 2005-09-08 Richard Henderson <rth@redhat.com>
  816. PR debug/23190
  817. * decl.c (wrapup_globals_for_namespace): Call
  818. emit_debug_global_declarations.
  819. * decl2.c (cp_finish_file): Likewise.
  820. 2005-09-08 Mark Mitchell <mark@codesourcery.com>
  821. PR c++/23691
  822. * decl2.c (mark_used): Instantiate static data members initialized
  823. by constants, even in a template.
  824. 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
  825. PR obj-c++/16816
  826. * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
  827. two CPP_COLON.
  828. 2005-09-07 Richard Guenther <rguenther@suse.de>
  829. * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
  830. for EMPTY_CLASS_EXPR.
  831. 2005-09-06 Jakub Jelinek <jakub@redhat.com>
  832. PR c/23075
  833. * typeck.c (check_return_expr): Add no_warning argument. Set
  834. *no_warning to true if "return-statement with no value, in function
  835. returning" warning has been issued.
  836. * cp-tree.h (check_return_expr): Adjust prototype.
  837. * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
  838. check_return_expr set *no_warning to true.
  839. 2005-09-06 Mark Mitchell <mark@codesourcery.com>
  840. * cp-tree.h (rvalue): New function.
  841. * call.c (build_conditional_expr): Use it.
  842. * init.c (build_new_1): Likewise.
  843. * rtti.c (build_dynamic_cast_1): Likewise.
  844. * tree.c (rvalue): New function.
  845. * typeck.c (build_unary_op): Use it.
  846. (build_static_cast_1): Likewise.
  847. PR c++/9782
  848. * init.c (build_new_1): Make sure the entire array type is
  849. complete, not just its element types.
  850. 2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  851. * decl.c (check_elaborated_type_specifier): Remove redundant check.
  852. 2005-09-06 Jakub Jelinek <jakub@redhat.com>
  853. PR c++/23056
  854. * typeck.c (ignore_overflows): New helper function.
  855. (build_static_cast_1): Use it.
  856. 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
  857. * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
  858. Follow spelling conventions.
  859. 2005-09-05 Mark Mitchell <mark@codesourcery.com>
  860. PR c++/23667
  861. * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
  862. copying a VAR_DECL.
  863. 2005-09-05 Mark Mitchell <mark@codesourcery.com>
  864. PR c++/21440
  865. * semantics.c (finish_stmt_expr_expr): Add an explicit
  866. initialization to the last statement in the statement-expression.
  867. * (finish_stmt_expr): Adjust accordingly.
  868. 2005-09-03 Mark Mitchell <mark@codesourcery.com>
  869. PR c++/23699
  870. * decl2.c (mark_used): Always instantiate static data members
  871. initialized by constant expressions.
  872. * pt.c (instantiate_decl): Instantiate the initializers for static
  873. data members initialized by constant expressions.
  874. PR c++/21687
  875. * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
  876. finishing processing for a template function in a local class.
  877. Revert:
  878. 2005-09-02 Mark Mitchell <mark@codesourcery.com>
  879. * parser.c (cp_parser_class_specifier): Push/pop GC contexts
  880. around functions in local classes.
  881. 2005-09-02 Mark Mitchell <mark@codesourcery.com>
  882. PR c++/21687
  883. * parser.c (cp_parser_class_specifier): Push/pop GC contexts
  884. around functions in local classes.
  885. 2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
  886. PR obj-c++/23640
  887. * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
  888. init, call generate_ctor_or_dtor_function.
  889. 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  890. PR c++/13377
  891. * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
  892. lookup_name_real on final parse.
  893. 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  894. PR c++/23639
  895. * semantics.c (qualified_name_lookup_error): Do not complain again
  896. on invalid scope.
  897. 2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  898. PR c++/23586
  899. * parser.c (cp_parser_namespace_name): Move diagnostic for
  900. invalid namespace-name to here from ...
  901. * name-lookup.c (do_namespace_alias): ... here and ...
  902. (do_using_directive): ... here. Remove dead code.
  903. 2005-08-28 Mark Mitchell <mark@codesourcery.com>
  904. PR c++/23099
  905. * cp-tree.h (saved_scope): Add skip_evaluation.
  906. * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
  907. DECL_INITIAL, to determine whether or not a static data member was
  908. initialized in the class-specifier.
  909. (cp_finish_decl): Add comment.
  910. * init.c (integral_constant_value): Subtitute into the
  911. initializers for static data members in templates.
  912. * name-lookup.c (push_to_top_level): Save skip_evaluation.
  913. (pop_from_top_level): Restore it.
  914. * pt.c (instantiate_class_template): Do not substitute into the
  915. intializers of static data members when instantiating a class.
  916. (regenerate_decl_from_template): Simplify.
  917. (instantiate_decl): Tidy. Substitute into the initializer for a
  918. static data member even when the definition of the data member is
  919. not available.
  920. 2005-08-26 Mark Mitchell <mark@codesourcery.com>
  921. PR c++/19004
  922. * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
  923. (type_dependent_expression_p): Allow BASELINKs whose associated
  924. functions are simply a FUNCTION_DECL.
  925. PR c++/23491
  926. * cp-tree.h (build_vec_init): Adjust prototype.
  927. * init.c (perform_member_init): Adjust call to build_vec_init.
  928. (build_aggr_init): Likewise.
  929. (build_new_1): Do not call build_default_init for array types.
  930. (build_vec_init): Add explicit_default_init_p parameter. Perform
  931. default initialization of vector elements when set.
  932. * typeck.c (build_modify_expr): Adjust call to build_vec_init.
  933. 2005-08-25 Nathan Sidwell <nathan@codesourcery.com>
  934. PR c++/20817
  935. * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
  936. ->*.
  937. 2005-08-24 Nathan Sidwell <nathan@codesourcery.com>
  938. PR c++/22454
  939. * parser.c (cp_lexer_peek_nth_token): Relax assert.
  940. 2005-08-23 Nathan Sidwell <nathan@codesourcery.com>
  941. PR c++/23044
  942. * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
  943. 2005-08-22 James E Wilson <wilson@specifix.com>
  944. PR tree-optimization/23426
  945. * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
  946. array size check.
  947. 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  948. PR c++/22233
  949. * pt.c (push_template_decl_real): Return error_mark_node if the
  950. number of template parameters does not match previous definition.
  951. 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  952. PR c++/23089
  953. * decl.c (require_complete_types_for_parms): Mark incomplete types
  954. as invalid.
  955. 2005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  956. * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
  957. Fix typo in leading comment.
  958. 2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
  959. * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
  960. 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
  961. * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
  962. * call.c (add_template_candidate_real): Pass down 'flags' to
  963. fn_type_unification.
  964. (can_convert_arg): New 'flags' argument. Pass it to call to
  965. implicit_conversion instead of LOOKUP_NORMAL.
  966. (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
  967. * class.c (resolve_address_of_overloaded_function): Ditto.
  968. (resolve_address_of_overloaded_function): Ditto.
  969. * decl.c (reshape_init, check_default_argument): Ditto.
  970. * typeck.c (build_ptrmemfunc): Ditto.
  971. * pt.c (type_unification_real): Add 'flags' argument.
  972. (fn_type_unification): Pass 'flags' to type_unification_real.
  973. (type_unification_real): Pass new 'flags' argument to call to
  974. can_convert_arg.
  975. 2005-08-12 Giovanni Bajo <giovannibajo@libero.it>
  976. Nathan Sidwell <nathan@codesourcery.com>
  977. PR c++/21799
  978. PR c++/8271
  979. * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
  980. explicitly.
  981. 2005-08-12 Nathan Sidwell <nathan@codesourcery.com>
  982. PR c++/21799
  983. Revert my 2005-07-08 patch
  984. * pt.c (type_unification_real): Remove is_method_argument and
  985. assoicated checks.
  986. (fn_type_unification, unify): Adjust type_unification_real calls.
  987. 2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  988. PR c++/23266
  989. * decl2.c (grokfield): Check that method is not static before
  990. marking it as pure.
  991. 2005-08-11 Nathan Sidwell <nathan@codesourcery.com>
  992. PR c++/23219
  993. * name-lookup.c (pushtag): Process the template type before
  994. altering the identifier lookup fields. Remove unreachable code
  995. creating an empty stub decl.
  996. 2005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  997. PR c++/20646
  998. * decl.c (grokdeclarator): Reset storage_class after error.
  999. 2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1000. PR c++/22508
  1001. * init.c (build_new_1): Check for empty candidate list.
  1002. 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1003. PR c++/23191
  1004. * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
  1005. before calling build_exception_variant.
  1006. 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1007. PR c++/19498
  1008. * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
  1009. if substitution of template args did not succeed.
  1010. 2005-08-06 Michael Matz <matz@suse.de>
  1011. * method.c (use_thunk): Call init_insn_lengths.
  1012. 2005-08-05 James A. Morrison <phython@gcc.gnu.org>
  1013. PR c++/22514
  1014. * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
  1015. sorrycount or errorcount are nonzero.
  1016. 2005-08-05 Mark Mitchell <mark@codesourcery.com>
  1017. * name-lookup.c (pushtag): Remove accidental commit from:
  1018. 2004-12-21 Mark Mitchell <mark@codesourcery.com>
  1019. PR c++/19063
  1020. * decl.c (grokdeclarator): Return error_mark_node, not
  1021. void_type_node, to indicate errors.
  1022. * parser.c (cp_parser_template_parameter_list): Robustify.
  1023. (cp_parser_template_parameter): Likewise.
  1024. 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
  1025. * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
  1026. Fix comment typos.
  1027. 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
  1028. * method.c: Fix a comment typo.
  1029. 2005-07-28 Mark Mitchell <mark@codesourcery.com>
  1030. PR c++/22545
  1031. * call.c (add_builtin_candidate): Adjust for changes in
  1032. representation of pointer-to-member types.
  1033. 2005-07-28 Mike Stump <mrs@apple.com>
  1034. * pt.c (check_explicit_specialization): Add visibility logic.
  1035. (lookup_template_class): Likewise.
  1036. (instantiate_class_template): Likewise.
  1037. 2005-07-27 Devang Patel <dpatel@apple.com>
  1038. * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
  1039. 2005-07-25 Ian Lance Taylor <ian@airs.com>
  1040. * ptree.c (cxx_print_identifier): Print a leading space if the
  1041. indent level is 0.
  1042. 2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
  1043. * call.c (convert_for_arg_passing): Check function pointers when
  1044. -Wmissing-format-attribute is activated.
  1045. * typeck.c (convert_for_assignment): Likewise.
  1046. 2005-07-22 Manfred Hollstein <mh@suse.com>
  1047. * parser.c (cp_parser_declaration): Fix unitialised warnings.
  1048. 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
  1049. * class.c (build_base_path): Fix typo.
  1050. 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
  1051. PR C++/22358
  1052. * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
  1053. 2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1054. * call.c: Fix comment typo(s).
  1055. * cxx-pretty-print.h: Likewise.
  1056. * name-lookup.c: Likewise.
  1057. * parser.c: Likewise.
  1058. 2005-07-20 Douglas Gregor <doug.gregor@gmail.com>
  1059. PR c++/2922
  1060. * semantics.c (perform_koenig_lookup): For dependent calls, just
  1061. return the set of functions we've found so far. Later, it will be
  1062. augmented by those found through argument-dependent lookup.
  1063. * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
  1064. the optimization that skips namespaces where the functions were
  1065. originally found.
  1066. 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
  1067. Make CONSTRUCTOR use VEC to store initializers.
  1068. * call.c (convert_default_arg): Update call to digest_init.
  1069. * class.c (dump_class_hierarchy, dump_array): Update to cope with
  1070. VEC in CONSTRUCTOR_ELTS.
  1071. * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
  1072. (finish_compound_literal, digest_init): Update declaration.
  1073. * decl.c (struct reshape_iter): New data type.
  1074. (reshape_init_array): Rename to...
  1075. (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
  1076. (reshape_init): Rewrite from scratch. Split parts into...
  1077. (reshape_init_array, reshape_init_vector, reshape_init_class,
  1078. reshape_init_r): New functions.
  1079. (check_initializer): Update call to reshape_init. Remove obsolete
  1080. code.
  1081. (initialize_artificial_var, cp_complete_array_type): Update to cope
  1082. with VEC in CONSTRUCTOR_ELTS.
  1083. * decl2.c (grokfield): Update calls to digest_init.
  1084. (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
  1085. * error.c (dump_expr_init_vec): New function.
  1086. (dump_expr): Use dump_expr_init_vec.
  1087. * init.c (build_zero_init, build_vec_init): Update to cope with VEC
  1088. in CONSTRUCTOR_ELTS.
  1089. (expand_default_init): Update call to digest_init.
  1090. * parser.c (cp_parser_postfix_expression): Use a VEC for the
  1091. initializers.
  1092. (cp_parser_initializer_list): Build a VEC of initializers.
  1093. * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
  1094. in CONSTRUCTOR_ELTS.
  1095. * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
  1096. ptm_initializer, class_initializer, get_pseudo_ti_init): Use
  1097. build_constructor_from_list instead of build_constructor.
  1098. * semantics.c (finish_compound_literal): Update call to digest_init.
  1099. * tree.c (stabilize_init): Update to cope with VEC in
  1100. CONSTRUCTOR_ELTS.
  1101. * typeck.c (build_ptrmemfunc1): Likewise.
  1102. * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
  1103. Likewise.
  1104. (store_init_value): Use build_constructor_from_list and update call
  1105. to digest_init.
  1106. (digest_init): Rewrite.
  1107. (process_init_constructor): Rewrite from scratch. Split into...
  1108. (process_init_constructor_array, picflag_from_initializer,
  1109. process_init_constructor_record, process_init_constructor_union):
  1110. New functions.
  1111. (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
  1112. New macros.
  1113. (build_functional_cast): Use build_constructor_from_list instead of
  1114. build_constructor.
  1115. 2005-07-18 Mark Mitchell <mark@codesourcery.com>
  1116. PR c++/22263
  1117. * cp-tree.h (instantiate_decl): Change prototype.
  1118. * decl2.c (mark_used): Adjust accordingly.
  1119. * pt.c (do_decl_instantiation): Likewise.
  1120. (instantiate_class_member): Likewise.
  1121. (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
  1122. Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
  1123. that has no definition available.
  1124. (instantiate_pending_templates): Adjust call to instantiate_decl.
  1125. 2005-07-17 Mark Mitchell <mark@codesourcery.com>
  1126. PR c++/22139
  1127. * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
  1128. * decl.c (duplicate_decls): Re-register template specializations
  1129. for functions that have DECL_TEMLPLATE_INFO, even if they do not
  1130. have DECL_TEMPLATE_INSTANTIATION set.
  1131. 2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
  1132. * call.c (diagnostic_fn_t): New.
  1133. (build_temp, convert_like_real): Use diagnostic_fn_t.
  1134. 2005-07-15 Mark Mitchell <mark@codesourcery.com>
  1135. PR c++/22204
  1136. * repo.c (repo_emit_p): Robustify.
  1137. 2005-07-14 Daniel Berlin <dberlin@dberlin.org>
  1138. Fix PR c++/22452
  1139. * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
  1140. 2005-07-15 Mark Mitchell <mark@codesourcery.com>
  1141. PR c++/22132
  1142. * call.c (implicit_conversion): Add c_cast_p parameter.
  1143. (standard_conversion): Likewise. Allow conversions between
  1144. differently-qualified pointer types when performing a C-style
  1145. cast.
  1146. (add_function_candidate): Adjust callee.
  1147. (build_builtin_candidate): Likewise.
  1148. (build_user_type_conversion_1): Likewise.
  1149. (conditional_conversion): Likewise.
  1150. (can_convert_arg): Likewise.
  1151. (can_convert_arg_bad): Likewise.
  1152. (perform_implicit_conversion): Likewise.
  1153. * cp-tree.h (comp_ptr_ttypes_const): Declare.
  1154. * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
  1155. Return bool.
  1156. 2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1157. Nathan Sidwell <nathan@codesourcery.com>
  1158. PR c++/20172
  1159. * pt.c (tsubst_template_parms): Check for invalid non-type
  1160. parameters.
  1161. 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
  1162. * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
  1163. decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
  1164. (cp_init_ts): Call init_shadowed_var_for_decl.
  1165. Remove include of gt-cp-cp-lang.h.
  1166. * cp-objcp-common.c (shadowed_var_for_decl,
  1167. decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
  1168. cp-lang.c.
  1169. (init_shadowed_var_for_decl): New function to initialize
  1170. shadowed_var_for_decl.
  1171. Include gt-cp-cp-objcp-common.h.
  1172. * Make-lang.in (gt-cp-lang.h): Remove.
  1173. (gt-cp-cp-objcp-common.h): Add.
  1174. (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
  1175. (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
  1176. * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
  1177. * cp-tree (init_shadowed_var_for_decl): Add prototype.
  1178. 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
  1179. * Make-lang.in: Add gt-cp-lang.h.
  1180. (cp-lang.o): Ditto.
  1181. * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
  1182. the field.
  1183. * config-lang.in: Add cp-lang.c to gtfiles.
  1184. * cp-lang.c: Include hashtab.h.
  1185. (cp_init_ts): New function.
  1186. (LANG_HOOK_INIT_TS): Use macro.
  1187. (decl_shadowed_for_var_lookup): New function.
  1188. (decl_shadowed_for_var_insert): Ditto.
  1189. * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
  1190. (NON_THUNK_FUNCTION_CHECK): Ditto.
  1191. (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
  1192. (DECL_INIT_PRIORITY): Ditto.
  1193. (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
  1194. (DECL_SHADOWED_FOR_VAR): Use hashtable.
  1195. (SET_DECL_SHADOWED_FOR_VAR): Ditto.
  1196. * decl.c (duplicate_decls): Update for new/updated structures.
  1197. (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
  1198. * decl2.c (start_static_initialization_or_destruction): Deal with
  1199. priority.
  1200. * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
  1201. SET_DECL_RTL.
  1202. * tree.c (handle_init_priority_attribute): Handle priority.
  1203. 2005-07-08 Nathan Sidwell <nathan@codesourcery.com>
  1204. PR c++/21799
  1205. * pt.c (type_unification_real): Add is_method argument. Use it
  1206. for this pointer unification.
  1207. (fn_type_unification): Adjust type_unification_real call.
  1208. (unify): Likewise.
  1209. 2005-07-07 Nathan Sidwell <nathan@codesourcery.com>
  1210. * pt.c (type_unification_real): Remove allow_incomplete argument.
  1211. Remove unreachable code.
  1212. (fn_type_unification): Adjust call to type_unification_real.
  1213. (unify): Likewise.
  1214. 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
  1215. * Makefile.in (class.o, decl2.o): Adjust dependencies.
  1216. * class.c: Include tree-dump.h.
  1217. * decl2.c: Include tree-dump.h.
  1218. 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
  1219. * dump.c: Use dump_string_field.
  1220. 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
  1221. * cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
  1222. minimum GCC version for format checking to 4.1.
  1223. 2005-07-02 Kazu Hirata <kazu@codesourcery.com>
  1224. * Make-lang.in (cc1plus-checksum.c): Use
  1225. build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
  1226. 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
  1227. * name-lookup.c, parser.c: Use %q, %< and %> to quote in
  1228. diagnostics.
  1229. 2005-07-02 Zack Weinberg <zack@codesourcery.com>
  1230. Joseph S. Myers <joseph@codesourcery.com>
  1231. * error.c (location_of): Add comment.
  1232. (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
  1233. * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
  1234. * call.c, class.c, decl.c, decl2.c, friend.c, init.c,
  1235. name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
  1236. typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
  1237. or cp_pedwarn_at. Mark up some diagnostic strings with N_.
  1238. 2005-06-30 Daniel Berlin <dberlin@dberlin.org>
  1239. * decl.c (require_complete_types_for_parms): Call relayout_decl
  1240. instead of layout_decl.
  1241. 2005-06-30 Zack Weinberg <zack@codesourcery.com>
  1242. Jakub Jelinek <jakub@redhat.com>
  1243. * cp-lang.c: No need to include cxx-pretty-print.h.
  1244. * error.c (cp_printer): Update signature. No need to process
  1245. flags.
  1246. (print_instantiation_partial_context): Output last newline
  1247. with pp_base_newline.
  1248. * Make-lang.in: Update dependencies.
  1249. 2005-06-30 Steven Bosscher <stevenb@suse.de>
  1250. * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
  1251. DECL_THREAD_LOCAL_P.
  1252. (cp_finish_decl): Likewise.
  1253. (grokvardecl): Set the default DECL_TLS_MODEL here.
  1254. 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
  1255. * cvt.c (ocp_convert): Use invalid_conversion hook.
  1256. * typeck.c (build_binary_op): Use invalid_binary_op hook.
  1257. (build_unary_op): Use invalid_unary_op hook.
  1258. 2005-06-28 Paul Brook <paul@codesourcery.com>
  1259. * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
  1260. * except.c: Include target.h.
  1261. (init_exception_processing): Initialize unwind_resume_libfunc.
  1262. * doc/tm.texi: Document TARGET_ASM_TTYPE
  1263. 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
  1264. * call.c (build_over_call): Pass in named argument list to
  1265. `check_function_arguments'.
  1266. * typeck.c (build_function_call): Likewise.
  1267. 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
  1268. * cp-tree.h (lang_check_failed): Add noreturn attribute.
  1269. 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
  1270. * all files: Update FSF address in copyright headers.
  1271. 2005-06-23 Jason Merrill <jason@redhat.com>
  1272. PR c++/19317
  1273. * semantics.c (simplify_aggr_init_expr): Use
  1274. CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
  1275. 2005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1276. * pt.c (register_specialization): Remove superfluous assertion.
  1277. 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
  1278. * call.c (convert_like_real): Add format attribute.
  1279. * typeck.c (check_for_casting_away_constness,
  1280. build_static_cast_1): Likewise.
  1281. * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
  1282. Likewise.
  1283. 2005-06-17 Geoffrey Keating <geoffk@apple.com>
  1284. PR c++/17413
  1285. * pt.c (type_unification_real): Apply template type deduction even
  1286. to procedure parameters that are not dependent on a template
  1287. parameter.
  1288. 2005-06-16 Nathan Sidwell <nathan@codesourcery.com>
  1289. * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
  1290. change.
  1291. (create_pseudo_type_info): First parameter is an int.
  1292. 2005-06-15 Nathan Sidwell <nathan@codesourcery.com>
  1293. PR c++/20678
  1294. * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
  1295. null.
  1296. * Make-lang.in: Reformat some long lines.
  1297. (gt-cp-rtti.h): New target.
  1298. (cp/rtti.o): Add dependency.
  1299. * config-lang.in (gtfiles): Add cp/rtti.c.
  1300. * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
  1301. CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
  1302. CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
  1303. CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
  1304. CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
  1305. (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
  1306. ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
  1307. class_desc_type_node, si_class_desc_type_node,
  1308. vmi_class_desc_type_node, ptm_desc_type_node,
  1309. base_desc_type_node): Remove.
  1310. * decl.c: Adjust documentation of global trees.
  1311. * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
  1312. TINFO_REAL_NAME): Remove.
  1313. (struct tinfo_s): New.
  1314. (enum tinfo_kind): New.
  1315. (tinfo_descs): New.
  1316. (get_tinfo_decl): Adjust use of tinfo descriptor.
  1317. (tinfo_base_init, generic_initializer, ptr_initializer,
  1318. ptm_initializer, class_initializer): Likewise.
  1319. (get_pseudo_ti_init): Take descriptor index. Adjust.
  1320. (create_pseudo_type_info): Likewise.
  1321. (get_pseudo_ti_desc): Return descriptor index. Adjust.
  1322. (create_tinfo_types): Adjust use of create_pseudo_type_info.
  1323. (emit_tinfo_decl): Adjust use of tinfo descriptor.
  1324. 2005-06-14 Roger Sayle <roger@eyesopen.com>
  1325. * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
  1326. 2005-06-13 Geoffrey Keating <geoffk@apple.com>
  1327. * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
  1328. (rule for installing g++.1 manpage): Does depend on installdirs.
  1329. 2005-06-13 Nathan Sidwell <nathan@codesourcery.com>
  1330. PR c++/20789
  1331. * decl.c (cp_finish_decl): Clear runtime runtime initialization if
  1332. in-class decl's initializer is bad.
  1333. PR c++/21929
  1334. * parser.c (struct cp_parser): Document that scope could be
  1335. error_mark.
  1336. (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
  1337. scope.
  1338. (cp_parser_nested_name_specifier): Return NULL_TREE on error.
  1339. (cp_parser_postfix_expression): Deal with null or error_mark
  1340. scope.
  1341. (cp_parser_elaborated_type_specifier): Adjust
  1342. cp_parser_nested_name_specifier call.
  1343. * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
  1344. 2005-06-12 Roger Sayle <roger@eyesopen.com>
  1345. PR c++/21930
  1346. * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
  1347. Treat CONVERT_EXPR identically to NOP_EXPR.
  1348. 2005-06-10 Aldy Hernandez <aldyh@redhat.com>
  1349. PR c++/10611
  1350. * cvt.c (build_expr_type_conversion): Same.
  1351. * typeck.c (build_binary_op): Handle vectors.
  1352. (common_type): Same.
  1353. (type_after_usual_arithmetic_conversions): Same.
  1354. 2005-06-08 Nathan Sidwell <nathan@codesourcery.com>
  1355. PR c++/19497
  1356. * cp-tree.def (USING_DECL): Update documentation.
  1357. * cp-tree.h (DECL_DEPENDENT_P): New.
  1358. (USING_DECL_DECLS, USING_DECL_SCOPE): New.
  1359. * class.c (handle_using_decl): Move most of the processing to ...
  1360. * name-lookup.c (do_class_using_decl): ... here. Make stricter.
  1361. (push_using_decl): Use USING_DECL_SCOPE.
  1362. (cp_emit_debug_info_for_using): Make extern.
  1363. * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
  1364. * name-lookup.h (cp_emit_debug_info_for_using): Declare.
  1365. * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
  1366. when tsubsting.
  1367. (tsubst_expr): Use USING_DECL_SCOPE.
  1368. * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
  1369. * semantics.c (finish_member_declaration): Likewise.
  1370. 2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1371. PR c++/19894
  1372. * pt.c (tsubst): Reject pointer-to-member of type void.
  1373. PR c++/20563
  1374. * parser.c (cp_parser_label_declaration): Deal with invalid/missing
  1375. identifiers.
  1376. 2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
  1377. * cp-tree.def (DEFAULT_ARG): Adjust documentation.
  1378. * cp-tree.h (DEFARG_INSTANTIATIONS): New.
  1379. (struct tree_default_arg): Add instantiations member.
  1380. * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
  1381. VEC.
  1382. * pt.c (tsubst_arg_types): Likewise.
  1383. * parser.c (cp_parser_late_parsing_default_args): Fix overeager
  1384. assert in previous patch.
  1385. 2005-06-06 Jakub Jelinek <jakub@redhat.com>
  1386. * error.c (locate_error): Use gmsgid instead of msgid for argument
  1387. name.
  1388. (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
  1389. 2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
  1390. PR 21903
  1391. * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
  1392. * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
  1393. argument to any early instantiations.
  1394. * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
  1395. PR c++/20637
  1396. * cp-tree.h (add_method): Add using_decl parameter.
  1397. * class.c (add_method): Add using_decl parameter. Adjust error
  1398. messages.
  1399. (handle_using_decl): Pass the using decl to add_method.
  1400. (clone_function_decl): Adjust add_member calls.
  1401. * decl2.c (check_classfn): Likewise.
  1402. * method.c (lazily_declare_fn): Likewise.
  1403. * semantics.c (finish_member_declaration): Likewise.
  1404. * method.c (synthesize_method): Use inform, not warning.
  1405. 2005-06-06 Hans-Peter Nilsson <hp@axis.se>
  1406. * config-lang.in (target_libs): Remove target-gperf.
  1407. 2005-06-05 Mark Mitchell <mark@codesourcery.com>
  1408. PR c++/21619
  1409. * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
  1410. * parser.c (cp_parser_postfix_expression): Allow non-constant
  1411. expressions as arguments to __builtin_constant_p.
  1412. * tree.c (builtin_valid_in_constant_expr_p): Use
  1413. DECL_IS_BUILTIN_CONSTANT_P.
  1414. 2005-06-03 Mark Mitchell <mark@codesourcery.com>
  1415. PR c++/21853
  1416. * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
  1417. the pointed-to type for a pointer-to-member.
  1418. PR c++/21336
  1419. * cp-tree.h (grok_op_properties): Remove friendp parameter.
  1420. * decl.c (grokfndecl): Adjust call.
  1421. (grok_op_properties): Determine the class of which the function is
  1422. a member by looking at its DECL_CONTEXT, not current_class_type.
  1423. * pt.c (tsubst_decl): Adjust call to grok_op_properties.
  1424. 2005-06-02 Nathan Sidwell <nathan@codesourcery.com>
  1425. * method.c (synthesize_method): Add addtional arg to warning call.
  1426. PR c++/21280
  1427. * Make-lang.in (method.o): Add diagnostic.h
  1428. * decl.c (start_preparsed_function): Use decl's location for file
  1429. info.
  1430. * decl2.c (cp_finish_file): Set input_location before synthesizing
  1431. a function.
  1432. (mark_used): When deferring a synthesized function, save current
  1433. location. Do not set function's location when actually
  1434. synthesizing it.
  1435. * method.c: #include diagnostic.h.
  1436. (synthesize_method): Set the functions source location. Show
  1437. needed location if errors are emitted.
  1438. * decl.c (start_decl): Simplify specialization handling. Remove
  1439. unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
  1440. * mangle.c (discriminator_for_local_entity): Use VEC_index.
  1441. PR c++/20350
  1442. * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
  1443. PR c++/21151
  1444. * name-lookup.c (pushtag): Push local class even in a template.
  1445. 2005-05-31 Nathan Sidwell <nathan@codesourcery.com>
  1446. PR c++/21165
  1447. * init.c (integral_constant_value): Check the type of the
  1448. initializer, not the decl.
  1449. 2005-05-30 Mark Mitchell <mark@codesourcery.com>
  1450. PR c++/21784
  1451. * name-lookup.c (do_nonmember_using_decl): Ignore builtin
  1452. functions, even when the used name is not a function.
  1453. 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
  1454. * operators.def, optimize.c: Update copyright.
  1455. 2005-05-28 Mark Mitchell <mark@codesourcery.com>
  1456. PR c++/21210
  1457. * call.c (standard_conversion): Permit conversions to complex
  1458. types if conversion to the corresponding scalar type would be
  1459. permitted.
  1460. PR c++/21340
  1461. * method.c (implicitly_declare_fn): Clear processing_template_decl
  1462. when generating implicit declaration.
  1463. 2005-05-27 Mark Mitchell <mark@codesourcery.com>
  1464. PR c++/21614
  1465. * typeck.c (get_member_function_from_ptrfunc): Do not attempt
  1466. conversions to base classes of incomplete types.
  1467. 2005-05-27 Ian Lance Taylor <ian@airs.com>
  1468. * semantics.c (add_stmt): Add C++ frontend specific version.
  1469. * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
  1470. (stmts_are_full_exprs_p): Declare.
  1471. 2005-05-27 Roger Sayle <roger@eyesopen.com>
  1472. Giovanni Bajo <giovannibajo@gcc.gnu.org>
  1473. * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
  1474. * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
  1475. of CONVERT_EXPR.
  1476. (cp_parser_unary_expression): Likewise.
  1477. * typeck.c (build_unary_op): Likewise.
  1478. * call.c (add_builtin_candidate, build_new_op): Likewise.
  1479. * error.c (dump_expr): Likewise.
  1480. * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
  1481. * decl.c (ambi_op_p, grok_op_properties): Likewise.
  1482. * dump.c (dump_op): Likewise.
  1483. * lex.c (init_operators): Likewise.
  1484. * operators.def ("+"): Likewise.
  1485. * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
  1486. conversion, if the result and argument types differ.
  1487. * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
  1488. like a NOP_EXPR when !processing_template_decl.
  1489. * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
  1490. (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
  1491. 2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
  1492. PR c++/21455
  1493. * typeck.c (get_delta_difference): Cope with incomplete but equal
  1494. classes. Reorder if.
  1495. PR c++/21681
  1496. * parser.c (cp_parser_late_parsing_for_member): Disable access
  1497. checking for template functions.
  1498. 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1499. PR c++/21768
  1500. * pt.c (redeclare_class_template): Change error message according
  1501. to coding conventions.
  1502. 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1503. * call.c (build_op_delete_call): Fix quoting in error message.
  1504. 2005-05-25 Richard Henderson <rth@redhat.com>
  1505. PR libgcj/21692
  1506. * cp-tree.h (make_alias_for): Declare.
  1507. * decl2.c (build_java_method_aliases): New.
  1508. (cp_finish_file): Call it.
  1509. * method.c (make_alias_for): Split out from ...
  1510. (make_alias_for_thunk): ... here.
  1511. 2005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1512. PR c++/21686
  1513. * semantics.c (finish_id_expression): Fix quoting in error message.
  1514. 2005-05-25 DJ Delorie <dj@redhat.com>
  1515. * decl.c (duplicate_decls): Move warning control from if() to
  1516. warning(OPT_*).
  1517. * name-lookup.c (parse_using_directive): Likewise.
  1518. * parser.c (cp_parser_elaborated_type_specifier): Likewise.
  1519. (cp_parser_init_declarator): Likewise.
  1520. * tree.c (handle_com_interface_attribute): Likewise.
  1521. 2005-05-24 Ziemowit Laski <zlaski@apple.com>
  1522. * class.c (layout_class_type): Do not issue C++ ABI warnings
  1523. for ObjC structs.
  1524. * decl.c (objc_mark_locals_volatile): Streamline by calling
  1525. objc_volatilize_decl().
  1526. * parser.c (cp_parser_objc_message_expression): Allow simple
  1527. type specifiers (instead of merely type names) as message
  1528. receivers.
  1529. * pt.c (template_args_equal): Do not call objc_comptypes().
  1530. * typeck.c (composite_pointer_type): If both pointers are
  1531. ObjC-esque, arbitrarily choose the first; do not call
  1532. objc_comptypes().
  1533. (comptypes): Do not call objc_comptypes().
  1534. (convert_for_assignment): Call objc_compare_types().
  1535. (comp_ptr_ttypes_real): Call objc_type_quals_match() before
  1536. concluding that types do not match.
  1537. 2005-05-24 Andrew Pinski <pinskia@physics.uc.edu>
  1538. PR C++/21645
  1539. * optimize.c (update_cloned_parm): Copy the TYPE also from the
  1540. original one.
  1541. 2005-05-19 Jakub Jelinek <jakub@redhat.com>
  1542. PR c++/21495
  1543. * decl.c (grokdeclarator): Fix "storage class specified for"
  1544. error reporting.
  1545. 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
  1546. * parser.c: Fix comment typos.
  1547. 2005-05-18 Geoffrey Keating <geoffk@apple.com>
  1548. * Make-lang.in (cc1plus-dummy): New.
  1549. (cc1plus-checksum.c): New.
  1550. (cc1plus-checksum.o): New.
  1551. (cc1plus): Add cc1plus-checksum.o.
  1552. 2005-05-17 H.J. Lu <hongjiu.lu@intel.com>
  1553. PR C++/19664
  1554. * decl2.c (determine_visibility): Don't set visibility to
  1555. hidden if it has been set explicitly by user.
  1556. 2005-05-17 Ziemowit Laski <zlaski@apple.com>
  1557. Mike Stump <mrs@apple.com>
  1558. Yet more Objective-C++...
  1559. * cp-objcp-common.h (cxx_get_alias_set): Move from
  1560. here...
  1561. (cxx_warn_unused_global_decl): Likewise.
  1562. (cp_expr_size): Likewise.
  1563. (cp_tree_size): Likewise.
  1564. (cp_var_mod_type_p): Likewise.
  1565. (cxx_initialize_diagnostics): Likewise.
  1566. (cxx_types_compatible_p): Likewise.
  1567. * cp-tree.h: to here.
  1568. (do_poplevel): Add.
  1569. * lex.c (D_OBJC): Add.
  1570. (init_reswords): Add.
  1571. * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
  1572. * parser.c: Add c-common.h include.
  1573. * pt.c: Add c-common.h and cp-objcp-common.h includes.
  1574. (template_args_equal): Use objc_comptypes as well.
  1575. (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
  1576. * semantics.c (do_poplevel): Remove static.
  1577. * decl.c (objc_mark_locals_volatile): Don't change decls that are
  1578. already ok.
  1579. * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
  1580. Objective C++ early enough.
  1581. * lex.c (struct resword reswords): Add Objective-C++ support.
  1582. * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
  1583. (cp_parser_objc_message_receiver): Add.
  1584. (cp_parser_objc_message_args): Likewise.
  1585. (cp_parser_objc_message_expression): Likewise.
  1586. (cp_parser_objc_encode_expression): Likewise.
  1587. (cp_parser_objc_defs_expression): Likewise.
  1588. (cp_parser_objc_protocol_expression): Likewise.
  1589. (cp_parser_objc_selector_expression): Likewise.
  1590. (cp_parser_objc_expression): Likewise.
  1591. (cp_parser_objc_visibility_spec): Likewise.
  1592. (cp_parser_objc_method_type): Likewise.
  1593. (cp_parser_objc_protocol_qualifiers): Likewise.
  1594. (cp_parser_objc_typename): Likewise.
  1595. (cp_parser_objc_selector_p): Likewise.
  1596. (cp_parser_objc_selector): Likewise.
  1597. (cp_parser_objc_method_keyword_params): Likewise.
  1598. (cp_parser_objc_method_tail_params_opt): Likewise.
  1599. (cp_parser_objc_interstitial_code): Likewise.
  1600. (cp_parser_objc_method_signature): Likewise.
  1601. (cp_parser_objc_method_prototype_list): Likewise.
  1602. (cp_parser_objc_method_definition_list): Likewise.
  1603. (cp_parser_objc_class_ivars): Likewise.
  1604. (cp_parser_objc_identifier_list): Likewise.
  1605. (cp_parser_objc_alias_declaration): Likewise.
  1606. (cp_parser_objc_class_declaration): Likewise.
  1607. (cp_parser_objc_protocol_declaration): Likewise.
  1608. (cp_parser_objc_protocol_refs_opt): Likewise.
  1609. (cp_parser_objc_superclass_or_category): Likewise.
  1610. (cp_parser_objc_class_interface): Likewise.
  1611. (cp_parser_objc_class_implementation): Likewise.
  1612. (cp_parser_objc_end_implementation): Likewise.
  1613. (cp_parser_objc_declaration): Likewise.
  1614. (cp_parser_objc_try_catch_finally_statement): Likewise.
  1615. (cp_parser_objc_synchronized_statement): Likewise.
  1616. (cp_parser_objc_throw_statement): Likewise.
  1617. (cp_parser_objc_statement): Likewise.
  1618. (cp_parser_primary_expression): Add Objective-C++.
  1619. (cp_parser_statement): Likewise.
  1620. (cp_parser_declaration): Likewise.
  1621. (cp_parser_simple_type_specifier): Likewise.
  1622. (cp_parser_type_name): Likewise.
  1623. (cp_parser_parameter_declaration_list): Likewise.
  1624. (cp_parser_member_declaration) Likewise.
  1625. * tree.c: Include debug.h.
  1626. * typeck.c (composite_pointer_type): Add Objective-C++ support.
  1627. (finish_class_member_access_expr): Likewise.
  1628. (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
  1629. (build_modify_expr): Allow objc to generate write barriers.
  1630. * Make-lang.in (cp/tree.o): Add debug.h.
  1631. * tree.c (lvalue_p_1, case CONST_DECL): Add.
  1632. 2005-05-18 Jan Hubicka <jh@suse.cz>
  1633. * method.c: Include tree-pass.h
  1634. (use_thunk): Lower body before expanding.
  1635. 2005-05-17 Jakub Jelinek <jakub@redhat.com>
  1636. PR c++/21454
  1637. * decl.c (maybe_deduce_size_from_array_init): Call
  1638. cp_apply_type_quals_to_decl after completing array type.
  1639. 2005-05-16 Richard Henderson <rth@redhat.com>
  1640. * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
  1641. (build_library_fn): ... here.
  1642. 2005-05-12 Ian Lance Taylor <ian@airs.com>
  1643. * cp-tree.h (cp_stmt_codes): Don't define.
  1644. (statement_code_p): Declare.
  1645. (STATEMENT_CODE_P): Define.
  1646. * lex.c (statement_code_p): Define.
  1647. (cxx_init): Use actual codes in stmt_codes initializer, not
  1648. cp_stmt_codes macro. Initialize statement_code_p directly, rather
  1649. than using INIT_STATEMENT_CODES.
  1650. 2005-05-09 Mark Mitchell <mark@codesourcery.com>
  1651. * typeck.c (build_unary_op): Do not resort to address arithmetic
  1652. when taking the address of a COMPONENT_REF.
  1653. 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
  1654. * class.c (vtbl_init_data_s): Change the type of fns to
  1655. VEC(tree,gc)*.
  1656. (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
  1657. Use VEC instead of VARRAY.
  1658. 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
  1659. * mangle.c: Remove a reference to the MIPS -mint64 option.
  1660. 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
  1661. * decl.c (wrapup_globals_for_namespace): Use VEC instead of
  1662. VARRAY.
  1663. * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
  1664. * name-lookup.h (cp_binding_level): Change the type of
  1665. static_decls to VEC(tree,gc)*.
  1666. * mangle.c (globals): Change the type of substitutions to
  1667. VEC(tree,gc)*.
  1668. (dump_substitution_candidates, add_substitution,
  1669. find_substitution, finish_mangling, init_mangle): Use VEC
  1670. instead of VARRAY.
  1671. 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
  1672. * decl2.c (spew_debug): Remove.
  1673. * decl2.c (ssdf_decls, start_static_storage_duration_function,
  1674. generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
  1675. * decl2.c (pending_statics, note_vague_linkage_var,
  1676. cp_finish_file): Use VEC instead of VARRAY.
  1677. (pending_statics_used): Remove.
  1678. 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
  1679. * decl2.c (deferred_fns, note_vague_linkage_fn,
  1680. cp_finish_file): Use VEC instead of VARRAY.
  1681. 2005-05-05 Mark Mitchell <mark@codesourcery.com>
  1682. PR c++/21352
  1683. * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
  1684. 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
  1685. * pt.c: Fix a comment typo.
  1686. 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
  1687. * cp-tree.h (language_function): Change the type of
  1688. x_local_names to VEC.
  1689. * decl.c (push_local_name): Adjust uses of local_names.
  1690. 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
  1691. * friend.c, lex.c, mangle.c, repo.c: Update copyright.
  1692. 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
  1693. * class.c (local_classes, init_class_processing): Use VEC
  1694. instead of VARRAY.
  1695. * cp-tree.h (local_classes): Likewise.
  1696. * mangle.c (discriminator_for_local_entity): Likewise.
  1697. * name-lookup.c (pushtag): Likewise.
  1698. * class.c (current_lang_depth, push_lang_context,
  1699. pop_lang_context): Use VEC instead of VARRAY.
  1700. * cp-tree.h (saved_scope): Use VEC for lang_base instead of
  1701. VARRAY.
  1702. * name-lookup.c (push_to_top_level): Use VEC instead of
  1703. VARRAY.
  1704. 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
  1705. * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
  1706. for BUILT_IN_MD built-ins.
  1707. 2005-05-02 Michael Matz <matz@suse.de>
  1708. PR c++/19542
  1709. * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
  1710. common frontend.
  1711. (null_node): Remove.
  1712. * lex.c (cxx_init): Move null_node initialisation to C common frontend.
  1713. 2005-04-25 Ian Lance Taylor <ian@airs.com>
  1714. * cp-tree.def: Add EXPR_STMT.
  1715. * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
  1716. (EXPR_STMT_EXPR): Define.
  1717. * cp-gimplify.c: Include "flags.h".
  1718. (gimplify_expr_stmt): New static function.
  1719. (cp_gimplify_expr): Handle EXPR_STMT.
  1720. * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
  1721. rather than pp_expression.
  1722. (pp_cxx_statement): Handle EXPR_STMT.
  1723. * dump.c (cp_dump_tree): Handle EXPR_STMT.
  1724. * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
  1725. initializer.
  1726. 2005-04-25 Andrew Pinski <pinskia@physics.uc.edu>
  1727. PR C++/21188
  1728. * rtti.c (ifnonnull): Cast the zero comparison operand
  1729. to the correct type.
  1730. 2005-04-24 Jakub Jelinek <jakub@redhat.com>
  1731. PR middle-end/20991
  1732. * class.c: Include cgraph.h.
  1733. (cp_fold_obj_type_ref): Set node->local.vtable_method.
  1734. * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
  1735. 2005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
  1736. * mangle.c (write_builtin_type): Handle integer types which are
  1737. not one of the shared integer type nodes and emit a "vendor
  1738. extended builtin type" with an encoding in the form of "u5int96".
  1739. 2005-04-24 Ian Lance Taylor <ian@airs.com>
  1740. * cp-tree.def (USING_STMT): Change class to tcc_statement.
  1741. (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
  1742. (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
  1743. (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
  1744. 2005-04-23 DJ Delorie <dj@redhat.com>
  1745. * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
  1746. init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
  1747. repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
  1748. callers.
  1749. 2005-04-22 Per Bothner <per@bothner.com>
  1750. * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
  1751. input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
  1752. 2005-04-22 Alexandre Oliva <aoliva@redhat.com>
  1753. PR c++/21087
  1754. * name-lookup.c (push_overloaded_decl): Do not overload with
  1755. non-duplicate anticipated built-in.
  1756. 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
  1757. * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
  1758. VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
  1759. 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
  1760. * cp-tree.h: Adjust for new VEC API.
  1761. Define VEC(tree_pair_s,gc).
  1762. (struct save_scope): Adjust.
  1763. (struct lang_type_class): Adjust.
  1764. (unemitted_tinfo_decls): Adjust.
  1765. * class.c (add_method, resort_type_method_vec,
  1766. finish_struct_methods, struct find_final_overrider_data,
  1767. dfs_find_final_overrider_pre, find_final_overrider,
  1768. get_vcall_index, warn_hidden, walk_subobject_offsets,
  1769. check_methods, fixup_inline_methods, end_of_class,
  1770. warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
  1771. add_vcall_offset): Adjust.
  1772. * decl.c (xref_basetypes, finish_method): Adjust.
  1773. * decl2.c (check_classfn): Adjust.
  1774. * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
  1775. * method.c (do_build_copy_constructor): Adjust.
  1776. * name-lookup.c (new_class_binding, store_binding,
  1777. store_bindings, store_class_bindings): Adjust.
  1778. * name-lookup.h: Define VEC(cxx_saved_binding,gc),
  1779. VEC(cp_class_binding,gc).
  1780. (struct cp_binding_level): Adjust.
  1781. * parser.c: Define VEC(cp_token_position,heap).
  1782. (struct cp_lexer): Adjust.
  1783. (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
  1784. cp_lexer_save_tokens): Adjust.
  1785. * pt.c (retrieve_specialization,
  1786. check_explicit_specialization): Adjust.
  1787. * rtti.c (unemitted_tinfo_decls): Adjust.
  1788. (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
  1789. get_pseudo_ti_desc): Adjust.
  1790. * search.c (dfs_access_in_type, lookup_conversion_operator,
  1791. lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
  1792. dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
  1793. * semantics.c: Define VEC(deferred_access,gc).
  1794. (push_deferring_access_checks): Adjust.
  1795. * typeck2.c (abstract_virtuals_error): Adjust.
  1796. 2005-04-20 Ian Lance Taylor <ian@airs.com>
  1797. * cp-tree.def: Add STMT_EXPR.
  1798. * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
  1799. (STMT_EXPR_STMT): Define.
  1800. * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
  1801. STMT_EXPR.
  1802. (pp_cxx_expression): Likewise.
  1803. (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
  1804. * dump.c (cp_dump_tree): Handle STMT_EXPR.
  1805. 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
  1806. * decl.c (expand_static_init): Call build2 and build3 instead
  1807. of build.
  1808. * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
  1809. 2005-04-17 Ian Lance Taylor <ian@airs.com>
  1810. * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
  1811. * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
  1812. ARROW_EXPR.
  1813. (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
  1814. (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
  1815. ALIGNOF_EXPR.
  1816. * typeck.c (cxx_sizeof_or_alignof_type): Update call to
  1817. c_sizeof_or_alignof_type for change in parameter type.
  1818. 2005-04-16 Mark Mitchell <mark@codesourcery.com>
  1819. PR c++/21025
  1820. * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
  1821. which sizeof/alignof is dependent, rather than just whether we are
  1822. processing_template_decl.
  1823. 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
  1824. * cp-tree.h (LOOKUP_GLOBAL): Remove.
  1825. (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
  1826. LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
  1827. LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
  1828. their values.
  1829. 2005-04-15 Richard Henderson <rth@redhat.com>
  1830. PR middle-end/14311
  1831. * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
  1832. 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
  1833. * cp-tree.h (lang_type_class): Remove redefined. Move
  1834. java_interface into where redefined was. Increment the width
  1835. of dummy.
  1836. (TYPE_REDEFINED): Remove.
  1837. 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
  1838. * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
  1839. CLASSTYPE_TEMPLATE_LEVEL): Remove.
  1840. 2005-04-11 Mark Mitchell <mark@codesourcery.com>
  1841. * decl2.c (determine_visibility): Don't use export_class_data.
  1842. (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
  1843. TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
  1844. 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
  1845. * cp-tree.h (cxx_alignof): Remove.
  1846. * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
  1847. * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
  1848. CONV_STATIC_CAST): Remove.
  1849. * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
  1850. * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
  1851. * cp-tree.h (cp_deprecated): Remove.
  1852. 2005-04-08 Ian Lance Taylor <ian@airs.com>
  1853. * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
  1854. CONTINUE_STMT, SWITCH_STMT.
  1855. * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
  1856. BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
  1857. (WHILE_COND, WHILE_BODY): Define.
  1858. (DO_COND, DO_BODY): Define.
  1859. (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
  1860. (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
  1861. * cp-gimplify.c (enum bc_t): Define.
  1862. (struct cp_gimplify_ctx, ctxp): Define.
  1863. (push_context, pop_context): New static functions.
  1864. (begin_bc_block, finish_bc_block): New static functions.
  1865. (build_bc_goto): New static function.
  1866. (gimplify_cp_loop, gimplify_for_stmt): New static functions.
  1867. (gimplify_while_stmt, gimplify_do_stmt): Likewise.
  1868. (gimplify_switch_stmt): Likewise.
  1869. (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
  1870. SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
  1871. (cp_genericize): Call push_context and pop_context.
  1872. * semantics.c (finish_break_stmt): Just call build_stmt
  1873. (BREAK_STMT) rather than build_break_stmt.
  1874. (finish_continue_stmt): Corresponding change.
  1875. * decl.c (pop_switch): Update call to c_do_switch_warnings for new
  1876. parameters.
  1877. * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
  1878. WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
  1879. * dump.c (cp_dump_tree): Likewise.
  1880. 2005-04-08 Mark Mitchell <mark@codesourcery.com>
  1881. PR c++/20905
  1882. * parser.c (cp_parser_type_specifier_seq): Add is_condition
  1883. parameter.
  1884. (cp_parser_new_type_id): Pass it.
  1885. (cp_parser_condition): Likewise.
  1886. (cp_parser_conversion_type_id): Likewise.
  1887. (cp_parser_type_id): Likewise.
  1888. (cp_parser_type_specifier_seq): In a condition, do not allow
  1889. invalid type-specifier combinations.
  1890. (cp_parser_exception_declaration): Adjust call to
  1891. cp_parser_type_specifier_seq.
  1892. * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
  1893. * cp-tree.h (struct tinst_level): Add in_system_header_p.
  1894. (TINST_IN_SYSTEM_HEADER_P): New macro.
  1895. (make_tinst_level): Remove.
  1896. * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
  1897. the instantiated class.
  1898. (push_tinst_level): Do not use make_tinst_level. Set
  1899. TINST_IN_SYSTEM_HEADER_P.
  1900. (pop_tinst_level): Likewise.
  1901. (instantiate_class_template): Set in_system_header.
  1902. (instantiate_pending_templates): Likewise.
  1903. * tree.c (make_tinst_level): Remove.
  1904. 2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
  1905. * decl.c (start_decl): Apply pending #pragma weak regardless of
  1906. scope.
  1907. 2005-04-06 Mark Mitchell <mark@codesourcery.com>
  1908. PR c++/20212
  1909. * pt.c (regenerate_decl_from_template): Copy attributes for
  1910. parameters from the pattern to the instantiation.
  1911. 2005-04-05 Mark Mitchell <mark@codesourcery.com>
  1912. PR c++/20734
  1913. * cp-tree.def (OFFSET_REF): Correct comments.
  1914. * init.c (build_offset_ref): Remove misleading comment.
  1915. * typeck.c (build_unary_op): Handle pointer-to-member creation
  1916. here, rather than ...
  1917. (unary_complex_lvalue): ... here.
  1918. 2005-04-06 Jason Merrill <jason@redhat.com>
  1919. PR c++/19312
  1920. * tree.c (stabilize_init): Don't bother trying to stabilize
  1921. something with no side-effects.
  1922. 2005-04-05 Mark Mitchell <mark@codesourcery.com>
  1923. PR c++/20763
  1924. * decl.c (grokdeclarator): Correct attribute handling.
  1925. 2005-04-05 Mark Mitchell <mark@codesourcery.com>
  1926. PR c++/19159
  1927. * decl2.c (import_export_decl): Use non-COMDAT external linkage
  1928. for virtual tables, typeinfo, etc. that will be emitted in only
  1929. one translation unit on systems without weak symbols.
  1930. 2005-04-04 Mark Mitchell <mark@codesourcery.com>
  1931. PR c++/20679
  1932. * parser.c (cp_parser_template_name): Fix thinko.
  1933. 2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
  1934. PR c++/20746
  1935. * method.c (use_thunk): Protect covariant pointer return
  1936. adjustments from NULL pointers.
  1937. 2005-04-04 Jan Hubicka <jh@suse.cz>
  1938. * decl2.c (finish_objects): Revert my previous patch.
  1939. (cp_finish_file): Likewise.
  1940. 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
  1941. * pt.c: Fix comment typos.
  1942. 2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
  1943. PR c++/20723
  1944. * pt.c (more_specialized_fn): Member functions are unordered wrt
  1945. non-members. Conversion operators are unordered wrt other
  1946. functions.
  1947. 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
  1948. * call.c (add_template_candidates_real): Remove length parameter
  1949. from fn_type_unification call.
  1950. * class.c (resolve_address_of_overloaded_function): Likewise
  1951. * cp-tree.h (fn_type_unification): Remove length parameter.
  1952. * pt.c (get_bindings_overload): Remove.
  1953. (get_bindings_real): Rename to ...
  1954. (get_bindings): ... here. Remove length and strict
  1955. parameters. Change return type flag to boolean. Remove original
  1956. forwarding function.
  1957. (determine_specialization): Adjust get_bindings call.
  1958. (fn_type_unification): Remove length parameter. Adjust.
  1959. (type_unification_real): Remove length parameter. Adjust.
  1960. (resolve_overloaded_unification): Adjust get_bindings call.
  1961. (try_one_overload): Simplify confusing cascaded if control flow.
  1962. (unify): Remove length paramter from type_unification_real call.
  1963. (most_specialized_instantiation): Adjust get_bindings calls.
  1964. (most_specialized): Likewise.
  1965. 2005-03-31 Nathan Sidwell <nathan@codesourcery.com>
  1966. PR c++/19203, implement DR 214
  1967. * call.c (joust): Use more_specialized_fn.
  1968. * cp-tree.h (DEDUCE_ORDER): Remove.
  1969. (more_specialized): Replace with ...
  1970. (more_specialized_fn): ... this.
  1971. * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
  1972. case.
  1973. (type_unification_real): Remove DEDUCE_ORDER case.
  1974. (more_specialized): Replace with ...
  1975. (more_specialized_fn): ... this. Implement DR 214.
  1976. (most_specialized_instantiation): Use get_bindings_real directly.
  1977. 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
  1978. PR c++/18644
  1979. * call.c (build_new_op): Remove check for -Wsynth.
  1980. 2005-03-31 Jan Hubicka <jh@suse.cz>
  1981. * decl2.c (finish_objects): Mark ctor as needed.
  1982. (cp_finish_file): Output variables only in nonunit-at-a-time.
  1983. 2005-03-29 Richard Henderson <rth@redhat.com>
  1984. PR c/20519
  1985. * decl.c (cp_complete_array_type): Rename from complete_array_type.
  1986. Use the new complete_array_type in c-common.c. Update all callers.
  1987. * cp-tree.h (cp_complete_array_type): Update to match.
  1988. 2005-03-24 Geoffrey Keating <geoffk@apple.com>
  1989. * typeck.c (build_static_cast_1): Allow scalar_cast between
  1990. any integral, floating, or enumeration type.
  1991. 2005-03-24 Steven Bosscher <stevenb@suse.de>
  1992. * typeck.c (comptypes): First determine if the types are compatible
  1993. from a target-independent point of view. Check target attributes
  1994. last.
  1995. * class.c (build_base_path):
  1996. (build_vbase_offset_vtbl_entries):
  1997. (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
  1998. * error.c (dump_expr): Likewise.
  1999. * init.c (build_zero_init, expand_cleanup_for_base,
  2000. build_vec_delete_1): Likewise.
  2001. * mangle.c (write_integer_cst): Likewise.
  2002. * method.c (thunk_adjust): Likewise.
  2003. * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
  2004. * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
  2005. * typeck.c (build_ptrmemfunc_access_expr,
  2006. (get_member_function_from_ptrfunc): Likewise.
  2007. 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
  2008. * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
  2009. 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
  2010. * cp-tree.h (perform_integral_promotions): Remove.
  2011. (default_conversion): Add.
  2012. 2005-03-22 Mark Mitchell <mark@codesourcery.com>
  2013. * parser.c (cp_parser_warn_min_max): New function.
  2014. (cp_parser_binary_expression): Use it.
  2015. (cp_parser_assignment_operator_opt): Likewise.
  2016. (cp_parser_operator): Likewise.
  2017. 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2018. PR c++/19980
  2019. * decl.c (start_preparsed_function): Robustify.
  2020. 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2021. PR c++/20499
  2022. * parser.c (cp_parser_class_head): Return NULL_TREE when
  2023. encountering a redefinition.
  2024. 2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
  2025. PR c++/20465
  2026. PR c++/20381
  2027. * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
  2028. template.
  2029. 2005-03-21 Paolo Carlini <pcarlini@suse.de>
  2030. PR c++/20461
  2031. PR c++/20536
  2032. * init.c (emit_mem_initializers): Don't crash on undefined
  2033. types.
  2034. 2005-03-21 Paolo Carlini <pcarlini@suse.de>
  2035. PR c++/20147
  2036. * semantics.c (finish_stmt_expr_expr): Return immediately
  2037. if error_operand_p (expr).
  2038. 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
  2039. * cp-tree.h (lvalue_or_else, lvalue_p): New.
  2040. * typeck.c (lvalue_or_else): New. Call lvalue_error.
  2041. 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2042. PR c++/20240
  2043. * decl.c (decls_match): Compare context of VAR_DECL.
  2044. 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2045. PR c++/20333
  2046. * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
  2047. Check the return value of cp_parser_nested_name_specifier.
  2048. 2005-03-18 Dale Johannesen <dalej@apple.com>
  2049. * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
  2050. 2005-03-18 Paolo Carlini <pcarlini@suse.de>
  2051. PR c++/20463
  2052. * parser.c (cp_parser_diagnose_invalid_type_name):
  2053. Check TYPE_BINFO (current_class_type) before attempting
  2054. to emit inform messages.
  2055. 2005-03-17 Paolo Carlini <pcarlini@suse.de>
  2056. PR c++/19966
  2057. * cp-tree.h (grok_op_properties): Change return type to void.
  2058. * decl.c (grok_op_properties): Return early - don't check the
  2059. arity - in case of a static member or an operator that cannot
  2060. be non-member; tidy a bit.
  2061. 2005-03-17 Nathan Sidwell <nathan@codesourcery.com>
  2062. PR c++/20186
  2063. * pt.c (contains_dependent_cast_p): Remove.
  2064. (fold_non_dependent_expr): Don't use it.
  2065. (value_dependent_expression_p): Use a switch statement.
  2066. reference_exprs can be dependent.
  2067. 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2068. PR c++/4403
  2069. PR c++/9783, DR433
  2070. * name-lookup.c (pushtag): Skip template parameter scope when
  2071. scope is ts_global. Don't push tag into template parameter
  2072. scope.
  2073. * pt.c (instantiate_class_template): Reorder friend class
  2074. template substitution to handle non-dependent friend class
  2075. that hasn't been previously declared.
  2076. 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2077. Friend class name lookup 5/n
  2078. PR c++/1016
  2079. * cp-tree.h (pushtag): Adjust declaration.
  2080. * decl.c (lookup_and_check_tag): Call lookup_type_scope if
  2081. lookup_name fails.
  2082. (xref_tag): Adjust call to pushtag. Make hidden class visible.
  2083. (start_enum): Adjust call to pushtag.
  2084. * name-lookup.c (ambiguous_decl): Ignore hidden names.
  2085. (qualify_lookup): Change return type to bool.
  2086. (hidden_name_p): New function.
  2087. (lookup_namespace_name, unqualified_namespace_lookup,
  2088. lookup_name_real): Use it.
  2089. (lookup_type_scope): Update comments.
  2090. (maybe_process_template_type_declaration): Change parameter name
  2091. from globalize to is_friend.
  2092. (pushtag): Change globalize parameter of type int to tag_scope.
  2093. Hide name if introduced by friend declaration.
  2094. * name-lookup.h (hidden_name_p): Add declaration.
  2095. * parser.c (cp_parser_lookup_name): Don't deal with hidden name
  2096. here.
  2097. * pt.c (push_template_decl_real): Make hidden class template
  2098. visible.
  2099. (lookup_template_class, instantiate_class_template): Adjust call
  2100. to pushtag.
  2101. * semantics.c (begin_class_definition): Likewise.
  2102. * rtti.c (init_rtti_processing, build_dynamic_cast_1,
  2103. tinfo_base_init, emit_support_tinfos): Use ts_current instead of
  2104. ts_global.
  2105. 2005-03-13 Mark Mitchell <mark@codesourcery.com>
  2106. PR c++/20157
  2107. * pt.c (determine_specialization): Reject non-specializations.
  2108. 2005-03-11 Per Bothner <per@bothner.com>
  2109. * cp-tree.h (struct cp_declarator): New id_loc field.
  2110. * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
  2111. location using c_lex_with_flags, instead of input_location.
  2112. (cp_parser_direct_declarator): Set declarator's id_loc from
  2113. cp_token's id_loc.
  2114. 2005-03-10 Jakub Jelinek <jakub@redhat.com>
  2115. PR c++/18384, c++/18327
  2116. * decl.c (reshape_init_array): Use UHWI type for max_index_cst
  2117. and index. Convert max_index to size_type_node if it isn't
  2118. host_integerp (, 1).
  2119. 2005-03-09 Mark Mitchell <mark@codesourcery.com>
  2120. PR c++/20208
  2121. * pt.c (tsubst_decl): Apply array-to-pointer and
  2122. function-to-pointer conversions to function arguments.
  2123. (regenerate_decl_from_template): Likewise.
  2124. 2005-03-09 Paolo Carlini <pcarlini@suse.de>
  2125. PR c++/16859
  2126. * decl.c (complete_array_type): In pedantic mode, return
  2127. 3 for an empty initializer list as the initializer for an
  2128. array of unknown bound (8.5.1/4).
  2129. (maybe_deduce_size_from_array_init): Fix final test to use
  2130. the above.
  2131. 2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
  2132. PR c++/20186
  2133. * pt.c (contains_dependent_cast_p): New.
  2134. (fold_non_dependent_expr): Call it.
  2135. 2005-03-08 Mark Mitchell <mark@codesourcery.com>
  2136. PR c++/20142
  2137. * cp-tree.h (target_type): Remove.
  2138. * decl.c (layout_var_decl): Remove #if 0'd code.
  2139. (cp_finish_decl): Remove dead code.
  2140. * init.c (build_vec_init): When determining whether or not the
  2141. element type has an asignment operator, look through all array
  2142. dimensions.
  2143. * typeck.c (target_type): Remove.
  2144. 2005-03-07 Mark Mitchell <mark@codesourcery.com>
  2145. * class.c (finish_struct_1): Do not warn about non-virtual
  2146. destructors in Java classes.
  2147. 2005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2148. PR c++/19311
  2149. * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
  2150. * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
  2151. for OFFSET_TYPE.
  2152. * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
  2153. Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
  2154. (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
  2155. template.
  2156. 2005-03-02 Alexandre Oliva <aoliva@redhat.com>
  2157. * name-lookup.c (push_overloaded_decl): Don't error if the new
  2158. decl matches the old one.
  2159. * decl.c (redeclaration_error_message): Likewise.
  2160. 2005-03-01 Per Bothner <per@bothner.com>
  2161. * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
  2162. unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
  2163. 2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
  2164. PR c++/20232
  2165. * class.c (update_vtable_entry_for_fn): Don't crash on invalid
  2166. covariancy.
  2167. * cp-tree.g (THUNK_TARGET): Expand comment.
  2168. * method.c (use_thunk): Make sure we also use the target, if that
  2169. is a thunk.
  2170. 2005-02-27 Jakub Jelinek <jakub@redhat.com>
  2171. PR c++/20206
  2172. * decl.c (cxx_comdat_group): Put thunks for
  2173. TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
  2174. comdat group as the thunk target.
  2175. 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2176. * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
  2177. parser.c: Fix comment typo(s).
  2178. 2005-02-24 Jakub Jelinek <jakub@redhat.com>
  2179. PR c++/20175
  2180. * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
  2181. initializes a char/wchar_t array.
  2182. 2005-02-23 Mark Mitchell <mark@codesourcery.com>
  2183. PR c++/19878
  2184. * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
  2185. with internal linkage.
  2186. 2005-02-23 Alexandre Oliva <aoliva@redhat.com>
  2187. * decl.c (grokvardecl): Don't exempt anonymous types from having
  2188. linkage for variables that have linkage other than "C".
  2189. 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
  2190. * cp-objcp-common.h, error.c: Update copyright.
  2191. 2005-02-22 Mark Mitchell <mark@codesourcery.com>
  2192. PR c++/20073
  2193. * decl.c (start_decl_1): Don't clear TREE_READONLY.
  2194. (cp_finish_decl): Likewise.
  2195. (complete_vars): Call cp_apply_type_quals_to_decl.
  2196. * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
  2197. cases where that's not valid.
  2198. PR c++/19991
  2199. * init.c (integral_constant_value): Iterate if the value of a decl
  2200. is itself a constant.
  2201. PR c++/20152
  2202. * parser.c (cp_parser_class_head): Check for redefintions here.
  2203. * semantics.c (begin_class_definition): Not here.
  2204. PR c++/20153
  2205. * decl2.c (build_anon_union_vars): Add type parameter.
  2206. (finish_anon_union): Pass it.
  2207. PR c++/20148
  2208. * error.c (dump_expr): Do not print the body of a BIND_EXPR.
  2209. Handle STATEMENT_LIST.
  2210. PR c++/19883
  2211. * parser.c (cp_parser_direct_declarator): Always complain about
  2212. non-constant array bounds when in a function scope.
  2213. * semantics.c (finish_id_expression): Do not mark dependent names
  2214. as non-constant.
  2215. 2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
  2216. PR c++/19076
  2217. PR c++/6628
  2218. * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
  2219. * decl.c (grokdeclarator): Pedwarn about qualifying a function
  2220. type.
  2221. Add qualifiers when declaring a typedef of a function type.
  2222. Member function pointers pick up the qualifiers of the typedef
  2223. used to declare them.
  2224. Don't complain about creating cv-qualified function types.
  2225. Complain about qualified function typedefs that are used to
  2226. declare non-static member functions or free functions.
  2227. Use cp_apply_type_quals_to_decl.
  2228. (start_preparsed_function): Use cp_apply_type_quals_to_decl.
  2229. (grokclassfn): Use cp_apply_type_quals_to_decl.
  2230. * error.c (dump_type_suffix): Print qualifiers for function
  2231. types.
  2232. * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
  2233. (tsubst): When substituting a function type into a member
  2234. pointer type, pass along the qualifiers.
  2235. (unify): Unify member pointers to member function pointers.
  2236. * tree.c (cp_build_qualified_type_real): Function types may be
  2237. qualified. This includes restrict qualifiers.
  2238. * typeck.c (cp_apply_type_quals_to_decl): New function to replace
  2239. use of c_apply_type_quals_to_decl. Drops qualifiers that are being
  2240. added to function types.
  2241. 2005-02-20 Zack Weinberg <zack@codesourcery.com>
  2242. PR 18785
  2243. * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
  2244. c_common_to_target_charset. Delete bogus comment.
  2245. 2005-02-18 Richard Henderson <rth@redhat.com>
  2246. PR libstdc++/10606
  2247. * except.c (do_get_exception_ptr): New.
  2248. (expand_start_catch_block): Use it.
  2249. 2005-02-19 Jakub Jelinek <jakub@redhat.com>
  2250. * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
  2251. if type is not error_mark_node.
  2252. 2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
  2253. PR c++/19508
  2254. * decl2.c (grokfield): Do not apply attributes to template parameters
  2255. as they are ignored by tsubst anyway.
  2256. 2005-02-18 Jakub Jelinek <jakub@redhat.com>
  2257. PR c++/19813
  2258. * decl.c (start_decl_1): Clear TREE_READONLY flag if
  2259. its type has TYPE_NEEDS_CONSTRUCTING.
  2260. (complete_vars): Likewise.
  2261. 2005-02-17 Alexandre Oliva <aoliva@redhat.com>
  2262. PR c++/20028
  2263. * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
  2264. template along with TYPE_SIZE.
  2265. PR c++/20022
  2266. * semantics.c (perform_deferred_access_checks): Use
  2267. get_deferred_access_checks to get the top of the stack.
  2268. 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
  2269. PR c++/17788
  2270. * class.c (add_implicitly_declared_members, check_field_decl)
  2271. (check_field_decls, check_bases): Remove arguments, tests and
  2272. assignments of cant_have_default_ctor-related variables.
  2273. 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
  2274. * decl2.c (mark_used): Set the source location of the used decl to
  2275. the current input location here...
  2276. * method.c (synthesize_method): ... not here. Set input_location
  2277. from the decl instead.
  2278. 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
  2279. PR c++/19608
  2280. * parser.c (cp_parser_late_parsing_for_member): Use
  2281. current_function_decl as scope to push to and from.
  2282. PR c++/19884
  2283. * pt.c (check_explicit_specialization): Make sure namespace
  2284. binding lookup found an overloaded function.
  2285. (lookup_template_function): Just assert FNS is an overloaded
  2286. function.
  2287. PR c++/19895
  2288. * decl.c (grokdeclarator): Check for error mark node in ptrmem
  2289. construction.
  2290. 2005-02-14 Alexandre Oliva <aoliva@redhat.com>
  2291. PR c++/17816
  2292. * decl.c (redeclaration_error_message): Report redefinition of
  2293. pure virtual function.
  2294. 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
  2295. PR c++/19891
  2296. * class.c (build_simple_base_path): Build the component_ref
  2297. directly.
  2298. (update_vtable_entry_for_fn): Walk the covariant's binfo chain
  2299. rather than using lookup_base.
  2300. * search.c (dfs_walk_once): Add non-recursive assert check.
  2301. * typeck.c (build_class_member_access_expr): It is possible for
  2302. the member type to be both const and volatile.
  2303. 2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2304. PR c++/14479
  2305. PR c++/19487
  2306. * pt.c (maybe_check_template_type): Remove.
  2307. * cp-tree.h (maybe_check_template_type): Remove prototype.
  2308. * name-lookup.c (maybe_process_template_type_declaration): Don't
  2309. use maybe_check_template_type.
  2310. 2005-02-11 Richard Henderson <rth@redhat.com>
  2311. PR c++/19632
  2312. * pt.c (get_mostly_instantiated_function_type): Save and restore
  2313. flag_access_control instead of push/pop_access_scope.
  2314. 2005-02-10 Mark Mitchell <mark@codesourcery.com>
  2315. PR c++/19755
  2316. * decl.c (reshape_init): Issue warnings about missing braces.
  2317. 2005-02-11 Kazu Hirata <kazu@cs.umass.edu>
  2318. * cp-tree.def, except.c, ptree.c: Update copyright.
  2319. 2005-02-09 Mark Mitchell <mark@codesourcery.com>
  2320. PR c++/19811
  2321. * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
  2322. attempting name lookup.
  2323. * parser.c (cp_parser_unqualified_id): Initialize type_decl.
  2324. PR c++/19787
  2325. * call.c (initialize_reference): Robustify.
  2326. PR ++/19732
  2327. * decl.c (grokdeclarator): Check for invalid use of destructor
  2328. names.
  2329. PR c++/19762
  2330. * parser.c (cp_parser_unqualified_id): Avoid creating destructor
  2331. names with invalid types.
  2332. PR c++/19826
  2333. * parser.c (cp_parser_direct_declarator): Allow type-dependent
  2334. expressions as array bounds.
  2335. PR c++/19739
  2336. * parser.c (cp_parser_attributes_list): Allow empty lists.
  2337. 2005-02-08 Mark Mitchell <mark@codesourcery.com>
  2338. PR c++/19733
  2339. * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
  2340. (check_bases): Give warnings about a base class with a
  2341. non-virtual destructor, even if it is implicit.
  2342. (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
  2343. (maybe_warn_about_overly_private_class): Don't use
  2344. TYPE_HAS_DESTRUCTOR.
  2345. (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
  2346. (check_for_override): Give it external linkage.
  2347. (add_implicitly_declared_members): Generate destructors lazily.
  2348. (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
  2349. TYPE_HAS_DESTRUCTOR.
  2350. (check_bases_and_members): Call check_methods before
  2351. check_field_decls.
  2352. (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
  2353. TYPE_HAS_DESTRUCTOR.
  2354. (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
  2355. * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
  2356. * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
  2357. (lang_type_class): Add lazy_destructor.
  2358. (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
  2359. (CLASSTYPE_DESTRUCTORS): Robustify.
  2360. (TYPE_HAS_DESTRUCTOR): Remove.
  2361. (check_for_override): Declare.
  2362. (build_vbase_delete): Remove.
  2363. * cvt.c (convert_to_void): Issue errors about pseudo-destructor
  2364. expressions.
  2365. * decl.c (cxx_maybe_build_cleanup): Remove dead code.
  2366. * except.c (dtor_nothrow): Lazily create destructors if necessary.
  2367. (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
  2368. * init.c (build_delete): Lazily create destructors, if necessary.
  2369. (build_vbase_delete): Remove.
  2370. * method.c (locate_dtor): Simplify.
  2371. (implicitly_declare_fn): Add support for destructors.
  2372. * parser.c (cp_parser_lookup_name): Lazily create destructors, if
  2373. necessary.
  2374. * pt.c (check_explicit_specialization): Don't use
  2375. TYPE_HAS_DESTRUCTOR.
  2376. (instantiate_class_template): Likewise.
  2377. * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
  2378. * rtti.c (emit_support_tinfos): Robustify.
  2379. * search.c (lookup_fnfields_1): Lazily create destructors.
  2380. * typeck.c (build_class_member_access_expr): Remove
  2381. PSEUDO_DTOR_EXPR handling.
  2382. (lookup_destructor): Likewise.
  2383. 2005-02-08 Kazu Hirata <kazu@cs.umass.edu>
  2384. * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
  2385. copyright.
  2386. 2005-02-07 Mark Mitchell <mark@codesourcery.com>
  2387. * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
  2388. on boolean variables.
  2389. (cp_lexer_stop_debugging): Likewise.
  2390. 2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
  2391. PR c++/17401
  2392. * parser.c (cp_parser_pure_specifier): Emit a specific error
  2393. message with an invalid pure specifier.
  2394. * decl2.c (grok_function_init): Remove.
  2395. (grokfield): An initializer for a method is a always a pure
  2396. specifier.
  2397. 2005-02-02 Matt Austern <austern@apple.com>
  2398. PR c++/19628
  2399. * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
  2400. * parser.c (cp_parser_postfix_expression): Accept function call in
  2401. constant expression if builtin_valid_in_constant_expr_p is true
  2402. for that function.
  2403. * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
  2404. * semantics.c (finish_id_expression): Accept function call in constant
  2405. expression if builtin_valid_in_constant_expr_p is true for that
  2406. function.
  2407. * tree.c (builtin_valid_in_constant_expr_p): New.
  2408. 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2409. PR c++/17413
  2410. * pt.c (check_instantiated_args): Improve error message.
  2411. Fix logic when to print its second part.
  2412. 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2413. * cp-tree.h (complete_type_or_else): Remove macro.
  2414. (complete_type_or_diagnostic): Rename to complete_type_or_else
  2415. and remove last argument.
  2416. * typeck.c (complete_type_or_diagnostic): Rename to
  2417. complete_type_or_else and remove last argument.
  2418. 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2419. * cp-tree.h (commonparms): Remove prototype.
  2420. (convert_arguments): Likewise.
  2421. (PFN_FROM_PTRMEMFUNC): Remove.
  2422. * typeck.c (commonparms): Make static.
  2423. (convert_arguments): Add prototype. Make static.
  2424. (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
  2425. 2005-01-31 Mark Mitchell <mark@codesourcery.com>
  2426. * parser.c (cp_parser_primary_expression): Don't complain about
  2427. floating-point literals in integral constant expressions when
  2428. !pedantic.
  2429. 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
  2430. * parser.c (cp_parser_template_id): Revert comment patch too.
  2431. PR c++/18757
  2432. PR c++/19366
  2433. PR c++/19499
  2434. * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
  2435. Issue an error when creating the template id.
  2436. * pt.c (fn_type_unification): Return early if the explicit
  2437. template arg list is an error_mark_node.
  2438. 2005-01-31 Mark Mitchell <mark@codesourcery.com>
  2439. * decl.c (build_enumerator): Do not issue duplicate error messages
  2440. about invalid enumeration constants.
  2441. * parser.c (cp_parser_non_integral_constant_expression): Always
  2442. set parser->non_integral_constant_expression_p.
  2443. (cp_parser_primary_expression): Add cast_p parameter. Issue
  2444. errors about invalid uses of floating-point literals in
  2445. cast-expressions.
  2446. (cp_parser_postfix_expression): Add cast_p parameter.
  2447. (cp_parser_open_square_expression): Pass it.
  2448. (cp_parser_parenthesized_expression_list): Add cast_p parameter.
  2449. (cp_parser_unary_expression): Likewise.
  2450. (cp_parser_new_placement): Pass it.
  2451. (cp_parser_direct_new_declarator): Likewise.
  2452. (cp_parser_new_initializer): Likewise.
  2453. (cp_parser_cast_expression): Add cast_p parameter.
  2454. (cp_parser_binary_expression): Likewise.
  2455. (cp_parser_question_colon_clause): Likewise.
  2456. (cp_parser_assignment_expression): Likewise.
  2457. (cp_parser_expression): Likewise.
  2458. (cp_parser_constant_expression): If an integral constant
  2459. expression is invalid, return error_mark_node.
  2460. (cp_parser_expression_statement): Pass cast_p.
  2461. (cp_parser_condition): Likewise.
  2462. (cp_parser_iteration_statement): Likewise.
  2463. (cp_parser_jump_statement): Likewise.
  2464. (cp_parser_mem_initializer): Likewise.
  2465. (cp_parser_template_argument): Likewise.
  2466. (cp_parser_parameter_declaration): Likewise.
  2467. (cp_parser_initializer): Likewise.
  2468. (cp_parser_throw_expression): Likewise.
  2469. (cp_parser_attribute_list): Likewise.
  2470. (cp_parser_simple_cast_expression): Likewise.
  2471. (cp_parser_functional_cast): Likewise.
  2472. (cp_parser_late_parsing_default_args): Likewise.
  2473. (cp_parser_sizeof_operand): Save/restore
  2474. non_integral_constant_expression_p.
  2475. 2005-01-31 Mike Stump <mrs@apple.com>
  2476. * parser.c (cp_lexer_new_main): Get the first token, first, before
  2477. doing anything.
  2478. 2005-01-31 Mark Mitchell <mark@codesourcery.com>
  2479. * decl.c (start_decl): Add missing parentheses.
  2480. 2005-01-30 Mark Mitchell <mark@codesourcery.com>
  2481. PR c++/19555
  2482. * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
  2483. * decl.c (duplicate_decls): Do not discard
  2484. DECL_IMPLICIT_INSTANTIATION when merging declarations.
  2485. (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
  2486. variables that do not have DECL_USE_TEMPLATE.
  2487. PR c++/19395
  2488. * decl.c (grokdeclarator): Refactor code so that qualified names
  2489. are never allowed as the declarator in a typedef.
  2490. PR c++/19367
  2491. * name-lookup.c (do_nonmember_using_decl): Avoid overloading
  2492. builtin declarations.
  2493. PR c++/19457
  2494. * call.c (convert_like_real): Inline call to
  2495. dubious_conversion_warnings here.
  2496. * cp-tree.h (dubious_conversion_warnings): Remove.
  2497. * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
  2498. setting TREE_NEGATED_INT.
  2499. * typeck.c (dubious_conversion_warnings): Remove.
  2500. PR c++/19349
  2501. * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
  2502. memory.
  2503. 2005-01-28 Mark Mitchell <mark@codesourcery.com>
  2504. PR c++/19253
  2505. * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
  2506. tentative parses.
  2507. PR c++/19667
  2508. * pt.c (redeclare_class_template): Robustify.
  2509. 2005-01-27 Steven Bosscher <stevenb@suse.de>
  2510. * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
  2511. instead of SWITCH_EXPR ones.
  2512. * pt.c (tsubst_expr): Likewise.
  2513. * semantics.c (begin_switch_stmt, finish_switch_cond,
  2514. finish_switch_stmt): Likewise.
  2515. 2005-01-26 J"orn Rennecke <joern.rennecke@st.com>
  2516. PR c++/18370
  2517. * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
  2518. 2005-01-25 Andrew Pinski <pinskia@physics.uc.edu>
  2519. * class.c (abort_fndecl_addr): New variable.
  2520. (build_vtbl_initializer): If we have a pure virtual function
  2521. share the abort function's address.
  2522. Include gt-cp-class.h at the end.
  2523. * config-lang.in (gtfiles): Add cp/class.c.
  2524. 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2525. * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
  2526. (pp_cxx_function_definition): Make static.
  2527. * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
  2528. (pp_cxx_function_definition): Likewise.
  2529. 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2530. * name-lookup.c (print_binding_level): Make static.
  2531. (constructor_name_full): Make static inline.
  2532. (current_decl_namespace): Make static.
  2533. * name-lookup.h (constructor_name_full): Remove prototype.
  2534. (print_binding_level): Likewise.
  2535. (current_decl_namespace): Likewise.
  2536. 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2537. * decl.h (debug_bindings_indentation): Remove.
  2538. 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
  2539. * typeck.c: Fix a comment typo.
  2540. 2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
  2541. PR c++/19208
  2542. * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
  2543. at least once.
  2544. (tsubst): Use fold_decl_constant_value in place of a bare call to
  2545. integral_constant_value.
  2546. 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
  2547. * typeck.c (more_qualified_p): Remove.
  2548. * cp-tree.h: Remove the corresponding prototype.
  2549. 2005-01-19 Matt Austern <austern@apple.com>
  2550. * typeck.c (comptypes): Handle return code from objc_comptypes
  2551. correctly.
  2552. 2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
  2553. * cp-tree.h, name-lookup.h: Remove unused prototypes.
  2554. 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2555. PR c++/19375
  2556. * semantics.c (finish_id_expression): Disable access checking for
  2557. already lookuped FIELD_DECL.
  2558. 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
  2559. * decl.c (delete_block): Remove.
  2560. * cp-tree.h: Remove the corresponding prototype.
  2561. * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
  2562. walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
  2563. Remove.
  2564. * cp-tree.h: Remove the corresponding prototypes.
  2565. * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
  2566. cp_update_decl_after_saving, name_p): Remove.
  2567. * cp-tree.h: Remove the corresponding prototypes.
  2568. 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
  2569. PR c/19472
  2570. * semantics.c (finish_asm_stmt): Strip nops off
  2571. input memory operands.
  2572. 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
  2573. * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
  2574. typeck2.c: Update copyright.
  2575. 2005-01-16 Kazu Hirata <kazu@cs.umass.edu>
  2576. * class.c (get_enclosing_class): Remove.
  2577. * cp-tree.h: Remove the corresponding prototypes.
  2578. * cvt.c (convert_lvalue): Remove.
  2579. * cp-tree.h: Remove the corresponding prototype.
  2580. * pt.c (tinst_for_decl): Remove.
  2581. * cp-tree.h: Remove the corresponding prototypes.
  2582. * tree.c (hash_chainon): Remove.
  2583. * cp-tree.h: Remove the corresponding prototypes.
  2584. 2005-01-15 Jakub Jelinek <jakub@redhat.com>
  2585. PR c++/19263
  2586. * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
  2587. of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
  2588. 2005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
  2589. * Make-lang.in (cp-warn): Don't append $(WERROR).
  2590. 2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
  2591. * cp-tree.h: Fix a comment typo.
  2592. 2005-01-07 Nathan Sidwell <nathan@codesourcery.com>
  2593. PR c++/19298
  2594. * pt.c (tsubst_qualified_id): Call convert_from_reference.
  2595. 2005-01-06 Mark Mitchell <mark@codesourcery.com>
  2596. PR c++/19244
  2597. * class.c (add_implicitly_declared_members): Remove dead code.
  2598. * decl.c (grokfndecl): Add sfk parameter. Use it do set
  2599. DECL_CONSTRUCTOR_P.
  2600. (grokdeclarator): Adjust calls to grokfndecl.
  2601. * method.c (implicitly_declare_fn): Improve documentation.
  2602. * parser.c (cp_parser_direct_declarator): Do not consider a
  2603. function to be a constructor if the containing class was
  2604. originally anonymous.
  2605. 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2606. PR c++/17154
  2607. * search.c (lookup_field_1): Handle using declaration in
  2608. class template partial specialization.
  2609. 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
  2610. PR c++/19258
  2611. * pt.c (push_access_scope): Handle friend defined in class.
  2612. (pop_access_scope): Likewise.
  2613. 2005-01-06 Nathan Sidwell <nathan@codesourcery.com>
  2614. PR c++/19270
  2615. * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
  2616. (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
  2617. array-new handling code. Use build_x_binary_op.
  2618. 2005-01-05 Nathan Sidwell <nathan@codesourcery.com>
  2619. PR c++/19030
  2620. * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
  2621. * name-lookup.h (push_scope): Return pushed scope, not flag.
  2622. * name-lookup.c (push_scope): Return scope that should be popped,
  2623. not a flag.
  2624. * decl.c (start_decl): Adjust.
  2625. (grokfndecl): Adjust scope push and pop.
  2626. * decl2.c (check_classfn): Likewise.
  2627. * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
  2628. cp_parser_init_declarator, cp_parser_direct_declarator,
  2629. cp_parser_class_specifier, cp_parser_class_head,
  2630. cp_parser_lookup_name,
  2631. cp_parser_constructor_declarator_p): Likewise.
  2632. * pt.c (instantiate_class_template,
  2633. resolve_typename_type): Likewise.
  2634. 2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2635. PR c++/14136
  2636. * parser.c (cp_parser_unqualified_id): Do not issue error message
  2637. for typedef-name as destructor declarator when performing an
  2638. uncommitted tentative parse.
  2639. 2005-01-01 Steven Bosscher <stevenb@suse.de>
  2640. PR middle-end/17544
  2641. * decl.c (finish_function): Fix comment. Annotate the compiler
  2642. generated return with the current file name and line 0.
  2643. Copyright (C) 2005 Free Software Foundation, Inc.
  2644. Copying and distribution of this file, with or without modification,
  2645. are permitted in any medium without royalty provided the copyright
  2646. notice and this notice are preserved.