ChangeLog-2012 103 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068
  1. 2012-12-28 Kai Tietz <ktietz@redhat.com>
  2. * rtti.c (LONGPTR_T): New helper-macro.
  3. (get_pseudo_ti_init): Initialize offset_type by LONGPTR_T
  4. type instead of 'long' type.
  5. (create_tinfo_types): Use for offset/flags field LONGPTR_T
  6. type instead of 'long' type.
  7. 2012-12-19 Jason Merrill <jason@redhat.com>
  8. PR c++/55724
  9. * pt.c (type_unification_real): Re-combine post-deduction loops.
  10. 2012-12-14 Jason Merrill <jason@redhat.com>
  11. PR c++/55685
  12. * pt.c (tsubst_copy_and_build): Don't use SIZEOF_EXPR_TYPE_P in
  13. templates.
  14. PR c++/42315
  15. * decl.c (maybe_deduce_size_from_array_init): Don't change the
  16. variable type.
  17. 2012-12-13 Jakub Jelinek <jakub@redhat.com>
  18. PR c++/55652
  19. * typeck2.c (merge_exception_specifiers): Don't call operand_equal_p
  20. if noex is NULL.
  21. 2012-12-11 Jason Merrill <jason@redhat.com>
  22. PR c++/54883
  23. * decl2.c (min_vis_r): Handle anon visibility for enums.
  24. 2012-12-11 Marc Glisse <marc.glisse@inria.fr>
  25. PR c++/53094
  26. * tree.c (cp_tree_equal): Handle VECTOR_CST.
  27. * semantics.c (cxx_eval_bare_aggregate): Protect a dereference.
  28. Handle VECTOR_CST.
  29. 2012-12-11 Jakub Jelinek <jakub@redhat.com>
  30. PR c++/55643
  31. * expr.c (mark_exp_read): Handle FLOAT_EXPR similarly to NOP_EXPR.
  32. 2012-12-11 Jason Merrill <jason@redhat.com>
  33. PR c++/54416
  34. * pt.c (maybe_process_partial_specialization): Don't accept
  35. definition of a specialization without the appropriate header.
  36. * pt.c (maybe_process_partial_specialization): Handle aliases first.
  37. 2012-12-11 Jakub Jelinek <jakub@redhat.com>
  38. PR c++/55619
  39. * semantics.c (finish_asm_stmt): Don't call decay_conversion
  40. on input operands that can be only in memory.
  41. 2012-12-10 Eric Botcazou <ebotcazou@adacore.com>
  42. * Make-lang.in (cp/typeck.o): Add dependency on $(PARAMS_H).
  43. (cp/name-lookup.o): Likewise.
  44. 2012-12-10 Steven Bosscher <steven@gcc.gnu.org>
  45. * decl2.c (cp_write_global_declarations): Return after writing a PCH.
  46. 2012-12-07 Jason Merrill <jason@redhat.com>
  47. PR c++/55127
  48. * search.c (accessible_in_template_p): New.
  49. * cp-tree.h: Declare it.
  50. * pt.c (instantiation_dependent_scope_ref_p): New.
  51. (value_dependent_expression_p): Use it.
  52. (instantiation_dependent_r): Likewise.
  53. * semantics.c (finish_decltype_type): Handle SCOPE_REF.
  54. PR c++/55419
  55. * tree.c (build_target_expr): Don't set TREE_CONSTANT.
  56. 2012-12-07 Aldy Hernandez <aldyh@redhat.com>
  57. PR c++/55513
  58. * semantics.c (cxx_eval_builtin_function_call): Set non_constant_p
  59. after folding.
  60. 2012-12-07 Paolo Carlini <paolo.carlini@oracle.com>
  61. * tree.c (build_aggr_init_expr): Remove tsubst_flags_t parameter.
  62. (build_cplus_new): Adjust.
  63. * cp-tree.h: Adjust declaration.
  64. * init.c (build_value_init): Adjust.
  65. 2012-12-07 Dodji Seketeli <dodji@redhat.com>
  66. PR c++/54401
  67. * parser.c (cp_parser_alias_declaration): Commit to tentative
  68. parse when see the '=' token. Get out if the type-id is invalid.
  69. Update function comment.
  70. (cp_parser_member_declaration): Don't try to parse a using
  71. declaration if we know that we expected an alias declaration; that
  72. is, if we see the '=' token after the identifier.
  73. 2012-12-06 Jason Merrill <jason@redhat.com>
  74. PR c++/54325
  75. * tree.c (build_aggr_init_expr): Don't check for abstract class.
  76. (build_cplus_new): Check here instead.
  77. PR c++/55058
  78. * pt.c (tsubst): Keep the quals when looking through a typedef.
  79. PR c++/55249
  80. * tree.c (build_vec_init_elt): Use the type of the initializer.
  81. PR c++/54744
  82. * pt.c (resolve_typename_type): Check TYPENAME_IS_RESOLVING_P on scope.
  83. * init.c (expand_member_init): Check for being in a template first.
  84. * parser.c (cp_parser_mem_initializer_list): Only check class types
  85. for equivalence to the current class.
  86. PR c++/54913
  87. * semantics.c (finish_qualified_id_expr): convert_from_reference
  88. after building a SCOPE_REF.
  89. 2012-12-06 Jakub Jelinek <jakub@redhat.com>
  90. PR c++/54207
  91. * except.c (build_noexcept_spec): Avoid direct comparison
  92. with boolean_true_node or boolean_false_node, instead use
  93. operand_equal_p and/or INTEGER_CST check.
  94. * pt.c (tsubst_exception_specification): Likewise.
  95. * typeck2.c (merge_exception_specifiers): Likewise.
  96. 2012-12-06 Marc Glisse <marc.glisse@inria.fr>
  97. PR c++/55573
  98. * semantics.c (adjust_temp_type): Handle VECTOR_CST.
  99. 2012-12-06 Jason Merrill <jason@redhat.com>
  100. PR c++/54947
  101. * parser.c (cp_parser_initializer_list): Don't require an
  102. expression in [] to be constant until we know it's a C99
  103. designator.
  104. PR c++/55015
  105. PR c++/53821
  106. * semantics.c (maybe_add_lambda_conv_op): Revert earlier change.
  107. * decl.c (start_preparsed_function): Make local class methods comdat
  108. in templates, too.
  109. PR c++/54653
  110. * parser.c (cp_parser_class_head): A partial specialization scope
  111. counts as a template.
  112. * pt.c (tsubst_template_parms): Handle template template parm parms.
  113. (tsubst_decl) [TEMPLATE_DECL]: Handle getting a template template
  114. argument back.
  115. PR c++/55564
  116. * pt.c (unify) [ARRAY_TYPE]: Unify the element type before the bounds.
  117. 2012-12-03 Paolo Carlini <paolo.carlini@oracle.com>
  118. PR c++/54170
  119. * cvt.c (cp_convert_to_pointer): Don't discard side-effects from
  120. expressions of nullptr_t.
  121. * typeck.c (build_ptrmemfunc): Likewise.
  122. 2012-12-01 Jakub Jelinek <jakub@redhat.com>
  123. PR c++/55542
  124. * pt.c (make_ith_pack_parameter_name): Return NULL if
  125. name is NULL.
  126. (tsubst_decl): Call make_ith_pack_parameter_name even if
  127. DECL_NAME is NULL.
  128. 2012-11-29 Jason Merrill <jason@redhat.com>
  129. PR c++/53137
  130. * pt.c (tsubst_expr) [DECL_EXPR]: Set LAMBDA_EXPR_THIS_CAPTURE here.
  131. (tsubst_copy_and_build) [LAMBDA_EXPR]: And clear it here.
  132. (instantiate_class_template_1): Not here.
  133. 2012-11-29 Marc Glisse <marc.glisse@inria.fr>
  134. PR c++/53094
  135. * cvt.c (ocp_convert): Call convert_to_vector.
  136. 2012-11-29 Kai Tietz <ktietz@redhat.com>
  137. PR target/53912
  138. * class.c (dump_class_hierarchy_r): Cast from pointer via uintptr_t.
  139. (dump_vtable): Likewise.
  140. 2012-11-29 Ed Smith-Rowland <3dw4rd@verizon.net>
  141. PR c++/52654
  142. * parser.c (cp_parser_string_literal): Add overflow_type arg.
  143. (cp_parser_userdef_numeric_literal): Warn on numeric overflow.
  144. 2012-11-28 Andrew Pinski <apinski@cavium.com>
  145. PR bootstrap/54279
  146. * Make-lang.in (g++$(exeext)): Rename to
  147. (xg++$(exeext)): This.
  148. (g++-cross$(exeext)): Use xg++$(exeext) instead of g++$(exeext).
  149. (c++.start.encap): Likewise.
  150. (c++.install-common): Likewise.
  151. 2012-11-24 Paolo Carlini <paolo.carlini@oracle.com>
  152. PR c++/55446
  153. * init.c (build_vec_init): Do not early return error_mark_mode
  154. when integer_all_onesp (maxindex).
  155. 2012-11-23 Jakub Jelinek <jakub@redhat.com>
  156. PR c++/54046
  157. * cp-objcp-common.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Redefine.
  158. * cp-objcp-common.c (cxx_block_may_fallthru): New function.
  159. * cp-tree.h (cxx_block_may_fallthru): New prototype.
  160. 2012-11-23 Markus Trippelsdorf <markus@trippelsdorf.de>
  161. PR c++/55418
  162. * method.c (implicitly_declare_fn): Properly initialize trivial_p.
  163. 2012-11-22 Jason Merrill <jason@redhat.com>
  164. PR c++/55137
  165. * semantics.c (verify_constant): Track overflow separately.
  166. (reduced_constant_expression_p): Don't check it here.
  167. (cxx_eval_constant_expression): Check it on CSTs.
  168. (cxx_eval_outermost_constant_expr): Treat overflows as non-constant
  169. at this point, but still return the folded version.
  170. (potential_constant_expression_1): Don't check overflow.
  171. * call.c (extend_ref_init_temps_1): Recompute TREE_CONSTANT for
  172. the ADDR_EXPR.
  173. 2012-11-20 Diego Novillo <dnovillo@google.com>
  174. Jakub Jelinek <jakub@redhat.com>
  175. * name-lookup.c: Replace all vec<T, A>() initializers
  176. with vNULL.
  177. * semantics.c: Likewise.
  178. 2012-11-19 Paolo Carlini <paolo.carlini@oracle.com>
  179. PR c++/55368
  180. * parser.c (cp_parser_member_declaration): Emit an error in case
  181. of stray comma at end of member declaration.
  182. 2012-11-19 Jason Merrill <jason@redhat.com>
  183. * class.c (one_inheriting_sig): Don't inherit base copy ctors.
  184. PR c++/55262
  185. * method.c (implicitly_declare_fn): Set DECL_PARM_INDEX on
  186. the parms of an inheriting ctor.
  187. PR c++/55261
  188. * class.c (add_implicitly_declared_members): Use
  189. lookup_fnfields_slot to get the base constructors.
  190. 2012-11-19 Jakub Jelinek <jakub@redhat.com>
  191. PR middle-end/54630
  192. * class.c (fixed_type_or_null_ref_ht): New variable.
  193. (fixed_type_or_null): Use it instead of local static ht.
  194. 2012-11-17 Diego Novillo <dnovillo@google.com>
  195. Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
  196. * Make-lang.in: Remove dependencies on vecir.h and vecprim.h everywhere.
  197. * call.c: Use new vec API in vec.h.
  198. * class.c: Likewise.
  199. * cp-gimplify.c: Likewise.
  200. * cp-tree.h: Likewise.
  201. * cvt.c: Likewise.
  202. * decl.c: Likewise.
  203. * decl2.c: Likewise.
  204. * error.c: Likewise.
  205. * except.c: Likewise.
  206. * init.c: Likewise.
  207. * mangle.c: Likewise.
  208. * method.c: Likewise.
  209. * name-lookup.c: Likewise.
  210. * name-lookup.h: Likewise.
  211. * parser.c: Likewise.
  212. * parser.h: Likewise.
  213. * pt.c: Likewise.
  214. * repo.c: Likewise.
  215. * rtti.c: Likewise.
  216. * search.c: Likewise.
  217. * semantics.c: Likewise.
  218. * tree.c: Likewise.
  219. * typeck.c: Likewise.
  220. * typeck2.c: Likewise.
  221. 2012-11-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
  222. * semantics.c (finish_id_expression): Tidy diagnostic message.
  223. 2012-11-16 Dodji Seketeli <dodji@redhat.com>
  224. PR c++/54875
  225. * pt.c (lookup_template_class_1): Look at the type of the
  226. potential member enum of class template to determine if we are
  227. actually substituting into a member enum of class template.
  228. 2012-11-16 Jakub Jelinek <jakub@redhat.com>
  229. PR c++/55337
  230. * tree.c (cp_tree_equal) <case ALIGNOF_EXPR>: Use SIZEOF_EXPR_TYPE_P
  231. only on SIZEOF_EXPR.
  232. 2012-11-14 Jason Merrill <jason@redhat.com>
  233. PR c++/54903
  234. * decl2.c (mark_used): Don't complain about auto in templates.
  235. PR c++/37276
  236. * decl.c (decls_match): Remove #ifdef around earlier fix.
  237. 2012-11-13 Jason Merrill <jason@redhat.com>
  238. * class.c (finish_struct_1): Check virtual functions
  239. for missing ABI tags.
  240. PR c++/55275
  241. * pt.c (maybe_process_partial_specialization): Update
  242. DECL_SOURCE_LOCATION for new specializations.
  243. 2012-11-14 Paolo Carlini <paolo.carlini@oracle.com>
  244. PR c++/55323
  245. * init.c (emit_mem_initializers): Skip arguments == error_mark_node.
  246. 2012-11-14 Fabien Chêne <fabien@gcc.gnu.org>
  247. PR c++/11750
  248. * call.c (build_new_method_call_1): Check that the instance type
  249. and the function context are the same before setting the flag
  250. LOOKUP_NONVIRTUAL.
  251. 2012-11-13 Sriraman Tallam <tmsriram@google.com>
  252. * class.c (mark_versions_used): Remove.
  253. (resolve_address_of_overloaded_function): Call target hook
  254. for versioned functions. Refactor to call
  255. get_function_versions_dispatcher.
  256. * decl.c (duplicate_decls): Add comments.
  257. * cp/call.c (get_function_version_dispatcher): Expose function.
  258. (mark_versions_used): Expose function.
  259. * cp/cp-tree.h (mark_versions_used): New declaration.
  260. (get_function_version_dispatcher): Ditto.
  261. 2012-11-13 Dodji Seketeli <dodji@redhat.com>
  262. PR c++/54466
  263. * pt.c (lookup_template_class_1): TYPE_STUB_DECL should be
  264. accessed on the main variant of the type.
  265. 2012-11-12 Ed Smith-Rowland <3dw4rd@verizon.net>
  266. * parser.c (cp_parser_objc_class_ivars):
  267. Index declspecs.locations by ds_typedef rather than ds_thread.
  268. 2012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net>
  269. PR c++/54413
  270. * decl.c (grokfndecl): Adjust calls to interpret_x_suffix.
  271. 2012-11-09 Jason Merrill <jason@redhat.com>
  272. PR c++/54859
  273. * pt.c (check_instantiated_arg): Don't complain about dependent args.
  274. * tree.c (cxx_attribute_table): Add abi_tag attribute.
  275. (check_abi_tag_redeclaration, handle_abi_tag_attribute): New.
  276. * class.c (find_abi_tags_r, check_abi_tags): New.
  277. (check_bases, check_field_decl): Call check_abi_tags.
  278. * decl.c (redeclaration_error_message): Call
  279. check_abi_tag_redeclaration.
  280. * mangle.c (tree_string_cmp, write_abi_tags): New.
  281. (write_unqualified_name): Call write_abi_tags.
  282. 2012-11-07 Paolo Carlini <paolo.carlini@oracle.com>
  283. PR c++/55226
  284. Revert:
  285. 2012-10-23 Paolo Carlini <paolo.carlini@oracle.com>
  286. PR c++/54922
  287. * semantics.c (cx_check_missing_mem_inits): Handle anonymous union
  288. members.
  289. 2012-11-07 Florian Weimer <fweimer@redhat.com>
  290. * init.c (build_new_1): Do not check for arithmetic overflow if
  291. inner array size is 1.
  292. 2012-11-05 Sriraman Tallam <tmsriram@google.com>
  293. * class.c (add_method): Change assembler names of function versions.
  294. (mark_versions_used): New static function.
  295. (resolve_address_of_overloaded_function): Create dispatcher decl and
  296. return address of dispatcher instead.
  297. * decl.c (decls_match): Make decls unmatched for versioned
  298. functions.
  299. (duplicate_decls): Remove ambiguity for versioned functions.
  300. Delete versioned function data for merged decls.
  301. * decl2.c (check_classfn): Check attributes of versioned functions
  302. for match.
  303. * call.c (get_function_version_dispatcher): New function.
  304. (mark_versions_used): New static function.
  305. (build_over_call): Make calls to multiversioned functions
  306. to call the dispatcher.
  307. (joust): For calls to multi-versioned functions, make the most
  308. specialized function version win.
  309. 2012-10-31 Lawrence Crowl <crowl@google.com>
  310. * decl2.c (var_finalized_p): Rename varpool_node to
  311. varpool_node_for_decl.
  312. (maybe_emit_vtables): Likewise.
  313. 2012-10-31 Paolo Carlini <paolo.carlini@oracle.com>
  314. PR c++/54583
  315. * tree.c (build_cplus_array_type): Set TREE_NO_WARNING on the
  316. TYPE_SIZE of VLAs.
  317. 2012-10-31 Dodji Seketeli <dodji@redhat.com>
  318. PR c++/54955
  319. * parser.c (cp_nth_tokens_can_be_std_attribute_p): Recognize the
  320. 'Alignas' keyword as the beginning of a c++11 attribute specifier.
  321. Update the comment of the function.
  322. (cp_next_tokens_can_be_gnu_attribute_p): Update the comment of the
  323. function.
  324. 2012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
  325. PR c++/54930
  326. * typeck.c (maybe_warn_about_returning_address_of_local): Use
  327. OPT_Wreturn_local_addr.
  328. 2012-10-26 Jakub Jelinek <jakub@redhat.com>
  329. PR c++/55081
  330. * typeck2.c (store_init_value): Call fold_non_dependent_expr
  331. and maybe_constant_init even for C++98.
  332. 2012-10-26 Paolo Carlini <paolo.carlini@oracle.com>
  333. PR c++/54984
  334. * init.c (build_new): Don't turn a null *init into a pointer to
  335. empty vector orig_init.
  336. 2012-10-25 Paolo Carlini <paolo.carlini@oracle.com>
  337. PR c++/53761
  338. * class.c (finish_struct_1): Reject aggregates decorated with
  339. __transparent_union__ which cannot be made transparent because
  340. the type of the first field has a different ABI from the class
  341. overall.
  342. 2012-10-25 Jason Merrill <jason@redhat.com>
  343. Core 1402
  344. * call.c (joust): An implicitly deleted move function is
  345. worse than any non-deleted function.
  346. * method.c (process_subob_fn): No special rules for move.
  347. (synthesized_method_walk, implicitly_declare_fn): Likewise.
  348. Warn about virtual base with non-trivial move assignment.
  349. * cp-tree.h (struct lang_decl_fn): Remove suppress_implicit_decl.
  350. (FNDECL_SUPPRESS_IMPLICIT_DECL): Remove.
  351. * semantics.c (finish_omp_threadprivate): Call complete_type.
  352. * class.c (one_inherited_ctor): Warn about variadic inherited ctor.
  353. 2012-10-25 Marc Glisse <marc.glisse@inria.fr>
  354. PR c++/54427
  355. * typeck.c (build_x_conditional_expr): Handle VEC_COND_EXPR.
  356. * call.c (build_conditional_expr_1): Likewise.
  357. 2012-10-25 Paolo Carlini <paolo.carlini@oracle.com>
  358. PR c++/34892
  359. * parser.c (cp_parser_template_parameter): When
  360. cp_parser_parameter_declaration parsed a default argument don't
  361. see if *is_parameter_pack needs setting.
  362. 2012-10-23 Paolo Carlini <paolo.carlini@oracle.com>
  363. PR c++/54922
  364. * semantics.c (cx_check_missing_mem_inits): Handle anonymous union
  365. members.
  366. 2012-10-23 Jakub Jelinek <jakub@redhat.com>
  367. PR c++/54844
  368. * pt.c (tsubst_copy, tsubst_copy_and_build) <case SIZEOF_EXPR>: Use
  369. tsubst instead of tsubst_copy* on types.
  370. PR c++/54988
  371. * decl2.c (cplus_decl_attributes): Don't return early
  372. if attributes is NULL.
  373. 2012-10-18 Paolo Carlini <paolo.carlini@oracle.com>
  374. PR c++/54501
  375. * decl.c (reshape_init_array_1): Avoid infinite loops.
  376. 2012-10-15 Alexandre Oliva <aoliva@redhat.com>
  377. Paolo Carlini <paolo.carlini@oracle.com>
  378. PR c++/17805
  379. * call.c (build_new_op_1): Filter out operator functions that don't
  380. satisfy enum-conversion match requirements.
  381. 2012-10-15 Paolo Carlini <paolo.carlini@oracle.com>
  382. PR c++/50080 (again)
  383. * parser.c (cp_parser_optional_template_keyword): When -pedantic
  384. and C++98 mode restore pre-Core/468 behavior.
  385. 2012-10-15 Paolo Carlini <paolo.carlini@oracle.com>
  386. PR c++/50080
  387. * parser.c (cp_parser_optional_template_keyword): Implement
  388. Core/468, allow outside template.
  389. 2012-10-14 Jason Merrill <jason@redhat.com>
  390. Ville Voutilainen <ville.voutilainen@gmail.com>
  391. Implement C++11 inheriting constructors.
  392. * cp-tree.h (cpp0x_warn_str): Add CPP0X_INHERITING_CTORS.
  393. (DECL_INHERITED_CTOR_BASE, SET_DECL_INHERITED_CTOR_BASE): New.
  394. (special_function_kind): Add sfk_inheriting_constructor.
  395. * class.c (add_method): An inheriting ctor is hidden by a
  396. user-declared one.
  397. (one_inheriting_sig, one_inherited_ctor): New.
  398. (add_implicitly_declared_members): Handle inheriting ctors.
  399. * error.c (maybe_warn_cpp0x): Handle CPP0X_INHERITING_CTORS.
  400. * init.c (emit_mem_initializers): Don't set LOOKUP_DEFAULTED
  401. for an inheriting constructor.
  402. * method.c (type_has_trivial_fn): Handle sfk_inheriting_constructor.
  403. (type_set_nontrivial_flag): Likewise.
  404. (add_one_base_init): Split out from...
  405. (do_build_copy_constructor): ...here. Handle inheriting constructors.
  406. (locate_fn_flags): Handle a list of arg types.
  407. (synthesized_method_walk): Handle inheriting constructors.
  408. (maybe_explain_implicit_delete): Likewise.
  409. (deduce_inheriting_ctor): New.
  410. (implicitly_declare_fn): Handle inheriting constructors.
  411. * name-lookup.c (push_class_level_binding_1): An inheriting constructor
  412. does not declare the base's name.
  413. (do_class_using_decl): Allow inheriting constructors.
  414. * pt.c (template_parms_to_args): Split from current_template_args.
  415. (add_inherited_template_parms): New.
  416. (tsubst_decl): Handle inheriting constructors.
  417. * tree.c (special_function_p): Handle inheriting constructors.
  418. 2012-10-12 Jakub Jelinek <jakub@redhat.com>
  419. PR c/54381
  420. * semantics.c (finish_call_expr): Pass array of 3 sizeof_arg
  421. trees and locs (corresponding to first 3 arguments) to
  422. sizeof_pointer_memaccess_warning.
  423. 2012-10-12 Paolo Carlini <paolo.carlini@oracle.com>
  424. PR c++/24449
  425. * decl.c (grokfndecl): When checking for ::main declarations
  426. use PROCESSING_REAL_TEMPLATE_DECL_P().
  427. 2012-10-12 Marc Glisse <marc.glisse@inria.fr>
  428. PR c++/53055
  429. * call.c (build_new_op_1): Pass RO_ARROW_STAR to cp_build_indirect_ref.
  430. * typeck.c (cp_build_indirect_ref): Handle RO_ARROW_STAR.
  431. 2012-10-11 Jason Merrill <jason@redhat.com>
  432. * cp-tree.h (DECL_THUNKS): NULL_TREE for non-virtual functions.
  433. (SET_DECL_THUNKS): New.
  434. * decl.c (duplicate_decls): Adjust.
  435. * method.c (make_thunk): Adjust.
  436. * decl.c (grokdeclarator): Set DECL_GNU_TLS_P for static data
  437. members, too.
  438. 2012-10-09 Dodji Seketeli <dodji@redhat.com>
  439. PR c++/53540 - using fails to be equivalent to typedef
  440. * cp-tree.h (TYPE_TEMPLATE_INFO): For an alias that is not an
  441. instance of alias template, don't look for its TEMPLATE_INFO in
  442. its declaration.
  443. (alias_template_specialization_p): Take const_tree.
  444. * pt.c (alias_template_specialization_p): Take a const_tree.
  445. Don't call primary_template_instantiation_p.
  446. (primary_template_instantiation_p): Call
  447. alias_template_specialization_p.
  448. 2012-10-10 Dodji Seketeli <dodji@redhat.com>
  449. * parser (cp_parser_statement): Parse c++11 attributes
  450. tentatively.
  451. (cp_parser_std_attribute_spec_seq): Do not warn too early about
  452. using c++11 attributes in non c++11 mode.
  453. 2012-10-10 Dehao Chen <dehao@google.com>
  454. * cp-gimplify.c (cp_genericize_r): Set location for TRY expr.
  455. 2012-10-09 Lawrence Crowl <crowl@google.com>
  456. * Make-lang.in (class.o): Add dependence on hash-table.h.
  457. (tree.o): Likewise.
  458. (semantics.o): Likewise.
  459. * class.c (fixed_type_or_null): Change to new type-safe hash table.
  460. * tree.c (verify_stmt_tree): Likewise.
  461. (verify_stmt_tree_r): Likewise.
  462. * semantics.c (struct nrv_data): Likewise.
  463. 2012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
  464. PR c++/54194
  465. * typeck.c (build_x_binary_op): Update warn_about_parentheses call.
  466. * parser.c (cp_parser_binary_expression): Use SET_EXPR_LOCATION
  467. on current.lhs.
  468. 2012-10-09 Marc Glisse <marc.glisse@inria.fr>
  469. PR c++/54427
  470. * typeck.c (cp_build_binary_op): Handle mixed scalar-vector
  471. operations.
  472. [LSHIFT_EXPR, RSHIFT_EXPR]: Likewise.
  473. 2012-10-08 Jakub Jelinek <jakub@redhat.com>
  474. PR c++/54858
  475. * tree.c (cp_tree_equal): Handle FIELD_DECL.
  476. 2012-10-08 Jason Merrill <jason@redhat.com>
  477. Allow dynamic initialization of thread_locals.
  478. * decl.c: Define tls_aggregates.
  479. (expand_static_init): Remove sorry. Add to tls_aggregates.
  480. * cp-tree.h: Declare tls_aggregates.
  481. * call.c (set_up_extended_ref_temp): Add to tls_aggregates.
  482. * decl2.c (var_needs_tls_wrapper): New.
  483. (var_defined_without_dynamic_init): New.
  484. (get_tls_init_fn, get_tls_wrapper_fn): New.
  485. (generate_tls_wrapper, handle_tls_init): New.
  486. (cp_write_global_declarations): Call handle_tls_init and
  487. enerate_tls_wrapper.
  488. * mangle.c (write_guarded_var_name): Split out from..
  489. (mangle_guard_variable): ...here.
  490. (mangle_tls_init_fn, mangle_tls_wrapper_fn): Use it.
  491. (decl_tls_wrapper_p): New.
  492. * semantics.c (finish_id_expression): Replace use of thread_local
  493. variable with a call to its wrapper.
  494. * decl.c (get_thread_atexit_node): New.
  495. (register_dtor_fn): Use it for TLS.
  496. Partial implementation of C++11 thread_local.
  497. * decl.c (cp_finish_decl): Remove errors about non-trivial
  498. initialization and destruction of TLS variables.
  499. (register_dtor_fn): Add sorry about TLS variables.
  500. (expand_static_init): Add sorry about non-local TLS variables,
  501. or error with __thread.
  502. Don't emit thread-safety guards for local TLS variables.
  503. (grokdeclarator): thread_local in a function implies static.
  504. * decl.h: Adjust prototype.
  505. * decl2.c (get_guard): Copy DECL_TLS_MODEL.
  506. * parser.c (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
  507. (set_and_check_decl_spec_loc): Take the token rather than the location.
  508. Distinguish between __thread and thread_local.
  509. (cp_parser_set_storage_class): Don't complain about thread_local before
  510. extern/static.
  511. (token_is__thread): New.
  512. * call.c (make_temporary_var_for_ref_to_temp): Handle TLS.
  513. * cp-tree.h (DECL_GNU_TLS_P): New.
  514. (cp_decl_specifier_seq): Add gnu_thread_keyword_p.
  515. 2012-10-08 Dodji Seketeli <dodji@redhat.com>
  516. PR c++/53528 C++11 attribute support
  517. * cp-tree.h (enum cpp0x_warn_str::CPP0X_ATTRIBUTES): New member.
  518. (enum cp_decl_spec::ds_std_attribute): New enumerator.
  519. (struct cp_decl_specifier_seq::std_attributes): New field.
  520. (cxx_alignas_expr, warn_misplaced_attr_for_class_type): Declare
  521. new functions.
  522. (check_tag_decl): Take an extra parameter for explicit
  523. instantiations.
  524. * decl.c (warn_misplaced_attr_for_class_type): Extract from ...
  525. (check_tag_decl): ... here. Add check for c++11 attributes being
  526. applied to an explicit instantiation. Take an extra parameter for
  527. explicit instantiations.
  528. (grokdeclarator): Make sure a c++11 attribute after an array
  529. declarator appertains to the array, an attribute after a function
  530. declarator appertains to the function type, an attribute after a
  531. declarator-id appertains to the entity being declared, and an
  532. attribute after a pointer declarator appertain to the pointer.
  533. * decl2.c (is_late_template_attribute): Use get_attribute_name.
  534. * error.c (maybe_warn_cpp0x): Support
  535. CPP0X_GENERALIZED_ATTRIBUTES.
  536. * parser.c (cp_next_tokens_can_be_attribute_p)
  537. (cp_next_tokens_can_be_gnu_attribute_p)
  538. (cp_next_tokens_can_be_std_attribute_p)
  539. (cp_nth_tokens_can_be_attribute_p)
  540. (cp_nth_tokens_can_be_gnu_attribute_p)
  541. (cp_nth_tokens_can_be_std_attribute_p)
  542. (cp_parser_gnu_attribute_list, cp_parser_std_attribute)
  543. (cp_parser_std_attribute_spec, cp_parser_std_attribute_spec_seq)
  544. (cp_parser_attributes_opt, cp_parser_std_attribute_list): New
  545. static functions.
  546. (cp_parser_gnu_attributes_opt): Replace cp_parser_attributes_opt.
  547. (cp_parser_gnu_attribute_list): Replace cp_parser_attribute_list.
  548. (cp_parser_postfix_expression): Disallow "[[" tokens here.
  549. (cp_parser_label_for_labeled_statement): Use take an extra
  550. parameter for attributes.
  551. (cp_parser_block_declaration): Use
  552. cp_nth_tokens_can_be_std_attribute_p here.
  553. (cp_parser_decl_specifier_seq): Likewise. Store C++11 attributes
  554. that appears in in decl specifiers in cp_decl_specifier_seq::std_attributes.
  555. declaration. Emit proper warning about misplaced c++11 attributes
  556. for class type.
  557. (cp_parser_explicit_instantiation): Adjust call to check_tag_decl.
  558. (cp_parser_init_declarator): Parsing attributes here is no more a
  559. GNU extension in c++-11.
  560. (cp_parser_type_specifier_seq): Use
  561. cp_next_tokens_can_be_attribute_p.
  562. (cp_parser_direct_declarator): Likewise. Hang c++11 attributes
  563. following the declarator to its syntactic construct. It'll later
  564. be applied to the proper appertaining entity by grokdeclarator.
  565. (cp_parser_ptr_operator): Likewise.
  566. (make_declarator): Initialize cp_declarator::std_attribute.
  567. (make_pointer_declarator, make_reference_declarator)
  568. (make_ptrmem_declarator, cp_parser_make_indirect_declarator): Take
  569. attributes that appertain to the pointer/reference in argument.
  570. (cp_parser_ptr_operator): Take an out parameter for c++11
  571. attributes. Update comments.
  572. (cp_parser_new_declarator_opt)
  573. (cp_parser_conversion_declarator_opt): Adjust.
  574. (cp_parser_declarator): Likewise. Handle C++11 attributes.
  575. Rename attributes to gnu_attribute for better legibility.
  576. (cp_parser_simple_declaration): Update comment.
  577. (cp_parser_class_specifier_1): Parse GNU attributes specifically
  578. (cp_parser_enum_specifier): Accept only gnu attributes after the
  579. specifier.
  580. (cp_parser_member_declaration): Don't clear attributes -- intended
  581. for the entity being declared -- too early because check_tag_decl
  582. needs them.
  583. (cp_parser_statement): Update comment. Parse optional c++11
  584. attributes at the beginning of the relevant kind of statements and
  585. ignore them, for now, unless when calling
  586. cp_parser_label_for_labeled_statement.
  587. (cp_parser_label_for_labeled_statement): Take c++11 attributes
  588. in parameter.
  589. * semantics.c (potential_constant_expression_1): Likewise.
  590. * typeck.c (fundamental_alignment_p, cxx_alignas_expr): New public
  591. functions.
  592. 2012-10-07 Paolo Carlini <paolo.carlini@oracle.com>
  593. * pt.c (fold_non_dependent_expr_sfinae): Remove static specifier.
  594. (tsubst_copy_and_build): Use get_target_expr_sfinae.
  595. * call.c (build_conditional_expr_1, convert_like_real): Likewise.
  596. * cvt.c (build_up_reference): Likewise.
  597. (ocp_convert): Use abstract_virtuals_error_sfinae.
  598. (build_up_reference): Propagate complain to cp_build_addr_expr.
  599. * decl.c (compute_array_index_type): Use fold_non_dependent_expr_sfinae.
  600. * cp-tree.h: Update declarations.
  601. * cvt.c (build_expr_type_conversion): Tidy.
  602. * tree.c (stabilize_aggr_init): Change to static.
  603. 2012-10-07 Paolo Carlini <paolo.carlini@oracle.com>
  604. PR c++/51422
  605. * semantics.c (is_normal_capture_proxy): Return true for
  606. error_mark_node as DECL_VALUE_EXPR.
  607. 2012-10-05 Jakub Jelinek <jakub@redhat.com>
  608. * cp-tree.h (SIZEOF_EXPR_TYPE_P): Define.
  609. * tree.c (cp_tree_equal): Handle SIZEOF_EXPR with
  610. SIZEOF_EXPR_TYPE_P.
  611. * mangle.c (write_expression): Likewise.
  612. * cxx-pretty-print.c (pp_cxx_unary_expression): Likewise.
  613. * error.c (dump_expr): Likewise.
  614. * parser.c (cp_parser_unary_expression): For sizeof call
  615. cxx_sizeof_or_alignof_{type,expr} just for diagnostics and
  616. return SIZEOF_EXPR with the operand.
  617. * pt.c (tsubst_copy, tsubst_copy_and_build): For SIZEOF_EXPR,
  618. call cxx_sizeof_or_alignof_{type,expr} for diagnostics, but
  619. return SIZEOF_EXPR with tsubsted operand.
  620. (value_dependent_expression_p): Handle SIZEOF_EXPR with
  621. SIZEOF_EXPR_TYPE_P.
  622. (instantiation_dependent_r): Likewise.
  623. * call.c (null_ptr_cst_p): Call maybe_constant_value for C++98.
  624. * semantics.c (finish_call_expr): Call
  625. sizeof_pointer_memaccess_warning if needed.
  626. (cxx_eval_constant_expression): Handle SIZEOF_EXPR.
  627. (potential_constant_expression_1): Remove early exit for
  628. C++98. Handle PROPERTY_REF.
  629. * decl.c (duplicate_decls): When redeclaring a builtin function,
  630. keep the merged decl builtin also if newdecl is a gnu_inline
  631. inline definition.
  632. (fold_sizeof_expr_r): New function.
  633. (compute_array_index_type): Fold SIZEOF_EXPRs in itype.
  634. * cp-gimplify.c (cp_genericize_r): Fold SIZEOF_EXPR.
  635. * typeck.c (cp_build_binary_op): For warn_for_sign_compare
  636. try harder using maybe_constant_value to get INTEGER_CSTs.
  637. * decl.c (stabilize_vla_size): Call pointer_set_destroy
  638. at the end.
  639. 2012-10-04 Arnaud Charlet <charlet@adacore.com>
  640. * decl2.c (cp_write_global_declarations): Fix handling of
  641. -fdump-ada-spec*.
  642. 2012-10-03 Jakub Jelinek <jakub@redhat.com>
  643. PR c++/54777
  644. * semantics.c (cxx_eval_constant_expression) <case COMPOUND_EXPR>: If
  645. not ignoring the second operand, pass the original second operand
  646. and not one with stripped nops to cxx_eval_constant_expression.
  647. 2012-10-01 Jason Merrill <jason@redhat.com>
  648. * decl.c (check_initializer): Set DECL_NONTRIVIALLY_INITIALIZED_P
  649. for a constructor call.
  650. (decl_jump_unsafe): So don't bother checking
  651. type_has_nontrivial_default_init.
  652. * call.c (set_up_extended_ref_temp): Set
  653. DECL_NONTRIVIALLY_INITIALIZED_P.
  654. * cp-tree.h (TYPE_FUNCTION_OR_TEMPLATE_DECL_CHECK): New.
  655. (DECL_FRIEND_P, DECL_ANTICIPATED): Use it.
  656. (TYPE_FUNCTION_OR_TEMPLATE_DECL_P): New.
  657. * name-lookup.c (hidden_name_p): Use it.
  658. * cp-tree.h (DECL_PRETTY_FUNCTION_P): Just look at the name.
  659. * decl.c (cp_make_fname_decl): Adjust.
  660. 2012-09-30 Sharad Singhai <singhai@google.com>
  661. * decl2.c (cp_write_global_declarations): Use a different method
  662. to determine if the dump has ben initialized.
  663. 2012-09-29 Paolo Carlini <paolo.carlini@oracle.com>
  664. PR c++/54738
  665. * decl2.c (build_offset_ref_call_from_tree): Add tsubst_flags_t
  666. parameter.
  667. * pt.c (tsubst_copy_and_build): Adjust.
  668. * parser.c (cp_parser_postfix_expression): Likewise.
  669. * cp-tree.h: Adjust declaration.
  670. 2012-09-28 Dodji Seketeli <dodji@redhat.com>
  671. PR c++/54372 - unused attribute inactive on dependant entities
  672. * decl2.c (is_late_template_attribute): "unused" attribute is to
  673. be applied at compile time.
  674. 2012-09-25 Dodji Seketeli <dodji@redhat.com>
  675. PR c++/29028 - Missed unused warning on using declaration
  676. * decl.c (poplevel<warn_unused*>): Do not forget that some local
  677. bindings are represented by a TREE_LIST.
  678. 2012-09-25 Dodji Seketeli <dodji@redhat.com>
  679. PR c++/53551 - -Wunused-local-typedefs misses uses
  680. * decl.c (make_typename_type): Record the use of typedefs.
  681. 2012-09-27 Jakub Jelinek <jakub@redhat.com>
  682. * init.c (build_new_1): Don't test TREE_CONSTANT
  683. of INTEGER_CST.
  684. 2012-09-25 Paolo Carlini <paolo.carlini@oracle.com>
  685. PR c++/54526
  686. * parser.c (cp_parser_template_id): In C++11 mode simply accept
  687. X<::A>.
  688. 2012-09-25 Zhenqiang Chen <zhenqiang.chen@linaro.org>
  689. PR c++/50970
  690. * typeck.c (cp_build_binary_op): Check side effects before generating
  691. pfn and delta related expressions.
  692. 2012-09-24 Lawrence Crowl <crowl@google.com>
  693. * init.c (build_new_1): Change to new double_int API.
  694. * decl.c (build_enumerator): Likewise.
  695. * typeck2.c (process_init_constructor_array): Likewise.
  696. * mangle.c (write_array_type): Likewise.
  697. 2012-09-24 Paolo Carlini <paolo.carlini@oracle.com>
  698. PR c++/50828
  699. * error.c (dump_function_decl): Strip TFF_TEMPLATE_NAME from flags
  700. at the outset.
  701. 2012-09-24 Jason Merrill <jason@redhat.com>
  702. * decl.c (get_atexit_node): Remove dead code.
  703. * Make-lang.in (cp/parser.o): Depend on decl.h.
  704. 2012-09-20 Paolo Carlini <paolo.carlini@oracle.com>
  705. PR c++/52432
  706. * pt.c (tsubst_copy_and_build): If tf_error is not set in the complain
  707. argument don't call unqualified_name_lookup_error.
  708. 2012-09-19 Marc Glisse <marc.glisse@inria.fr>
  709. PR c++/54581
  710. * semantics.c (finish_decltype_type): Make vectors not opaque.
  711. 2012-09-17 Jason Merrill <jason@redhat.com>
  712. PR c++/54575
  713. * pt.c (instantiate_alias_template): New.
  714. (tsubst): Use it.
  715. (push_access_scope): Allow TYPE_DECL.
  716. 2012-09-14 Jason Merrill <jason@redhat.com>
  717. PR c++/53661
  718. * typeck2.c (check_narrowing): Avoid false positives on conversion
  719. from enumeral type.
  720. 2012-09-14 Marc Glisse <marc.glisse@inria.fr>
  721. PR c++/54427
  722. * typeck.c (cp_build_binary_op) [LSHIFT_EXPR, RSHIFT_EXPR, EQ_EXPR,
  723. NE_EXPR, LE_EXPR, GE_EXPR, LT_EXPR, GT_EXPR]: Handle VECTOR_TYPE.
  724. 2012-09-14 Paolo Carlini <paolo.carlini@oracle.com>
  725. * decl.c (make_typename_type): Only error out if tf_error is set
  726. in complain.
  727. 2012-09-13 Paolo Carlini <paolo.carlini@oracle.com>
  728. Manuel López-Ibáñez <manu@gcc.gnu.org>
  729. PR c++/53210
  730. * init.c (perform_member_init): Use OPT_Winit_self instead of
  731. OPT_Wuninitialized.
  732. 2012-09-13 Paolo Carlini <paolo.carlini@oracle.com>
  733. * typeck.c (build_indirect_ref, build_function_call,
  734. build_function_call_vec, build_binary_op, build_unary_op,
  735. build_compound_expr, build_c_cast, build_modify_expr): Remove
  736. uses of ATTRIBUTE_UNUSED on the parameters.
  737. * class.c (set_linkage_according_to_type, resort_type_method_vec,
  738. dfs_find_final_overrider_post, empty_base_at_nonzero_offset_p):
  739. Likewise.
  740. * decl.c (local_variable_p_walkfn): Likewise.
  741. * except.c (wrap_cleanups_r, check_noexcept_r): Likewise.
  742. * error.c (find_typenames_r): Likewise.
  743. * tree.c (verify_stmt_tree_r, bot_replace,
  744. handle_java_interface_attribute, handle_com_interface_attribute,
  745. handle_init_priority_attribute, c_register_addr_space): Likewise.
  746. * cp-gimplify.c (cxx_omp_clause_default_ctor): Likewise.
  747. * cp-lang.c (objcp_tsubst_copy_and_build): Likewise.
  748. * pt.c (unify_success, unify_invalid, instantiation_dependent_r):
  749. Likewise.
  750. * semantics.c (dfs_calculate_bases_pre): Likewise.
  751. * decl2.c (fix_temporary_vars_context_r, clear_decl_external):
  752. Likewise.
  753. * parser.c (cp_lexer_token_at, cp_parser_omp_clause_mergeable,
  754. cp_parser_omp_clause_nowait, cp_parser_omp_clause_ordered,
  755. cp_parser_omp_clause_untied): Likewise.
  756. * mangle.c (write_unnamed_type_name,
  757. discriminator_for_string_literal): Likewise.
  758. * search.c (dfs_accessible_post, dfs_debug_mark): Likewise.
  759. * lex.c (handle_pragma_vtable, handle_pragma_unit,
  760. handle_pragma_interface, handle_pragma_implementation,
  761. handle_pragma_java_exceptions): Likewise.
  762. 2012-09-13 Jason Merrill <jason@redhat.com>
  763. PR c++/53839
  764. * semantics.c (cxx_eval_indirect_ref): If we aren't looking for an
  765. address, make sure the value is constant.
  766. PR c++/54511
  767. * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P.
  768. PR c++/53836
  769. * pt.c (value_dependent_expression_p): A TREE_LIST initializer must
  770. be dependent.
  771. 2012-09-10 Paolo Carlini <paolo.carlini@oracle.com>
  772. PR c++/54541
  773. PR c++/54542
  774. * call.c (build_cxx_call): Add tsubst_flags_t parameter, use
  775. require_complete_type_sfinae.
  776. (build_op_delete_call, build_over_call): Adjust.
  777. * typeck.c (build_x_compound_expr_from_vec): Add tsubst_flags_t
  778. parameter.
  779. (cp_build_function_call_vec): Adjust.
  780. * init.c (build_new_1): Likewise.
  781. * rtti.c (throw_bad_cast, throw_bad_typeid, build_dynamic_cast_1):
  782. Likewise.
  783. * optimize.c (build_delete_destructor_body): Likewise.
  784. * cp-tree.h: Adjust declarations.
  785. * call.c (convert_arg_to_ellipsis): Use require_complete_type_sfinae.
  786. 2012-09-10 Jason Merrill <jason@redhat.com>
  787. PR c++/54538
  788. PR c++/53783
  789. * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Go back to using RECUR
  790. for LAMBDA_EXPR_EXTRA_SCOPE except for function scope.
  791. PR c++/54506
  792. * decl.c (move_signature_fn_p): Split out from move_fn_p.
  793. * method.c (process_subob_fn): Use it.
  794. * cp-tree.h: Declare it.
  795. 2012-09-07 Jason Merrill <jason@redhat.com>
  796. * semantics.c (sort_constexpr_mem_initializers): Tweak.
  797. 2012-09-09 Mark Kettenis <kettenis@openbsd.org>
  798. * decl.c (reshape_init_class): Avoid dereferencing a
  799. past-the-end pointer.
  800. 2012-09-07 Paolo Carlini <paolo.carlini@oracle.com>
  801. * pt.c (num_template_headers_for_class): Rework per the code
  802. inline in cp_parser_check_declarator_template_parameters.
  803. * parser.c (cp_parser_check_declarator_template_parameters):
  804. Use num_template_headers_for_class.
  805. 2012-09-06 Jason Merrill <jason@redhat.com>
  806. PR c++/54341
  807. PR c++/54253
  808. * semantics.c (sort_constexpr_mem_initializers): New.
  809. (build_constexpr_constructor_member_initializers): Use it.
  810. (cx_check_missing_mem_inits): Skip artificial fields.
  811. * init.c (expand_aggr_init_1): Don't zero out a class
  812. with no data.
  813. 2012-09-05 Paolo Carlini <paolo.carlini@oracle.com>
  814. PR c++/54191
  815. * search.c (lookup_base): Add tsubst_flags_t parameter.
  816. (adjust_result_of_qualified_name_lookup, check_final_overrider):
  817. Adjust.
  818. * name-lookup.c (do_class_using_decl): Adjust.
  819. * typeck2.c (binfo_or_else, build_scoped_ref, build_m_component_ref):
  820. Likewise.
  821. * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
  822. build_up_reference): Likewise.
  823. * rtti.c (build_dynamic_cast_1): Likewise.
  824. * tree.c (maybe_dummy_object): Likewise.
  825. * call.c (build_conditional_expr_1, build_over_call): Likewise.
  826. * cp-tree.h (UNIQUELY_DERIVED_FROM_P, PUBLICLY_UNIQUELY_DERIVED_P):
  827. Remove.
  828. (enum base_access_flags, ba_quiet): Remove.
  829. (uniquely_derived_from_p, publicly_uniquely_derived_p): Declare.
  830. * except.c (can_convert_eh): Adjust.
  831. * decl.c (grokdeclarator): Likewise.
  832. * typeck.c (comp_except_types, build_class_member_access_expr,
  833. finish_class_member_access_expr, get_member_function_from_ptrfunc,
  834. build_static_cast_1, get_delta_difference_1): Likewise.
  835. * class.c (build_base_path, convert_to_base, build_vtbl_ref_1,
  836. warn_about_ambiguous_bases): Likewise.
  837. (uniquely_derived_from_p, publicly_uniquely_derived_p): Define.
  838. 2012-09-04 Jason Merrill <jason@redhat.com>
  839. PR c++/54441
  840. * decl.c (reshape_init_class): Handle invalid initializer for
  841. 0-length array member.
  842. * error.c (dump_type_suffix): Correct handling of 0-length arrays.
  843. PR c++/54420
  844. * cp-tree.h (LAMBDANAME_P): Remove.
  845. (LAMBDA_TYPE_P): Check CLASSTYPE_LAMBDA_EXPR instead.
  846. * cp-lang.c (cxx_dwarf_name): Likewise.
  847. * error.c (dump_aggr_type): Likewise.
  848. * semantics.c (begin_lambda_type): Set CLASSTYPE_LAMBDA_EXPR sooner.
  849. PR c++/54198
  850. * decl.c (check_default_argument): Set cp_unevaluated_operand
  851. around call to perform_implicit_conversion_flags.
  852. PR c++/54437
  853. PR c++/51213
  854. * pt.c (fn_type_unification): Call coerce_template_parms before
  855. entering substitution context.
  856. 2012-08-31 Paolo Carlini <paolo.carlini@oracle.com>
  857. Jason Merrill <jason@redhat.com>
  858. PR c++/18747
  859. * pt.c (check_template_variable): New.
  860. (num_template_headers_for_class): Split out...
  861. * decl.c (grokdeclarator): ...from here.
  862. (start_decl): Remove redundant diagnostic.
  863. * cp-tree.h: Declare them
  864. * parser.c (cp_parser_single_declaration): Call check_template_variable.
  865. 2012-08-31 Ollie Wild <aaw@google.com>
  866. PR c++/54197
  867. * call.c (extend_ref_init_temps_1): Handle COMPOUND_EXPR trees.
  868. 2012-08-30 Jason Merrill <jason@redhat.com>
  869. PR c++/50545
  870. PR c++/51222
  871. * pt.c (instantiation_dependent_r): New.
  872. (instantiation_dependent_expression_p): New.
  873. (value_dependent_expression_p): Use it. SCOPE_REF is always dependent.
  874. * semantics.c (finish_decltype_type): Use it.
  875. * cp-tree.h: Declare it.
  876. * semantics.c (finish_qualified_id_expr): Handle building up a
  877. non-dependent SCOPE_REF here.
  878. (finish_id_expression): Not here.
  879. * error.c (dump_decl) [SCOPE_REF]: Only pass TFF_UNQUALIFIED_NAME.
  880. * friend.c (make_friend_class): Handle template template parameters.
  881. * parser.c (cp_parser_template_declaration_after_export): Likewise.
  882. * pt.c (tsubst_friend_class): Likewise.
  883. (instantiate_class_template_1): Likewise
  884. * decl.c (check_elaborated_type_specifier): Likewise.
  885. (lookup_and_check_tag): Likewise.
  886. * pt.c (get_class_bindings): Call coerce_template_parms. Add
  887. main_tmpl parameter.
  888. (more_specialized_class): Add main_tmpl parameter.
  889. (most_specialized_class): Adjust calls.
  890. * decl.c (cp_finish_decl): Check for invalid multiple initializers
  891. even if the initializer is dependent.
  892. * pt.c (instantiate_template_1): Keep processing_template_decl set
  893. if there are dependent args.
  894. 2012-08-25 Paolo Carlini <paolo.carlini@oracle.com>
  895. PR c++/51421
  896. * decl2.c (mark_used): Consistently return false after errors
  897. about uses before deduction of auto.
  898. * semantics.c (finish_id_expression): Check mark_used return
  899. value and return error_mark_node in case of failure.
  900. 2012-08-24 Jason Merrill <jason@redhat.com>
  901. PR c++/51213 (again)
  902. * pt.c (deduction_tsubst_fntype): Remove.
  903. (fn_type_unification): Check deduction depth and call
  904. instantiate_template here. Handle default argument access checks.
  905. (determine_specialization): Suppress access control.
  906. (tsubst_decl): Check for excessive deduction depth.
  907. (recheck_decl_substitution): Make sure access control is on.
  908. (type_unification_real): Don't mess with access deferring here.
  909. (get_bindings): Adjust for fn_type_unification return type.
  910. * call.c (enum rejection_reason_code): Drop rr_template_instantiation.
  911. (template_instantiation_rejection): Remove.
  912. (struct rejection_reason): Change targs to num_targs.
  913. (template_unification_rejection, print_z_candidate): Adjust.
  914. (add_template_candidate_real): Adjust for fn_type_unification change.
  915. * class.c (resolve_address_of_overloaded_function): Likewise.
  916. * cp-tree.h: Adjust declaration.
  917. * pt.c (tsubst_default_argument): Indicate where the default
  918. argument is being instantiated for.
  919. (tsubst_expr): Restore previous location.
  920. (tsubst_copy_and_build): Set and restore location.
  921. * call.c (build_new_method_call_1): Remember location of call.
  922. * semantics.c (finish_call_expr): Here too.
  923. * parser.c (cp_parser_omp_for_loop): Remember the location of the
  924. increment expression.
  925. * pt.c (resolve_overloaded_unification): Use coerce_template_parms
  926. instead of get_bindings.
  927. (resolve_nondeduced_context): Likewise.
  928. * pt.c (register_specialization): Correct argument to
  929. check_specialization_namespace.
  930. (determine_specialization): Don't consider members of
  931. unspecialized types.
  932. 2012-08-23 Jason Merrill <jason@redhat.com>
  933. * decl.c (compute_array_index_type): Use type_dependent_expression_p.
  934. 2012-08-23 Paolo Carlini <paolo.carlini@oracle.com>
  935. PR c++/20420
  936. * name-lookup.c (supplement_binding_1): Handle specially enums
  937. only in class templates.
  938. (validate_nonmember_using_decl): Enforce 7.3.3/10 about duplicate
  939. using declarations at function scope.
  940. 2012-08-21 Richard Guenther <rguenther@suse.de>
  941. * cp-tree.h (TREE_INDIRECT_USING): Use TREE_LANG_FLAG_0 accessor.
  942. (ATTR_IS_DEPENDENT): Likewise.
  943. (ARGUMENT_PACK_INCOMPLETE_P): Use TREE_ADDRESSABLE instead of
  944. TREE_LANG_FLAG_0 on TREE_VECs.
  945. 2012-08-20 Florian Weimer <fweimer@redhat.com>
  946. PR c++/19351
  947. * call.c (build_operator_new_call): Add size_check argument and
  948. evaluate it.
  949. * cp-tree.h (build_operator_new_call): Adjust declaration.
  950. * init.c (build_new_1): Compute array size check and apply it.
  951. 2012-08-20 Paolo Carlini <paolo.carlini@oracle.com>
  952. PR c++/10416
  953. * decl.c (poplevel): Check TYPE_HAS_NONTRIVIAL_DESTRUCTOR for
  954. Wunused_variable too.
  955. 2012-08-20 Diego Novillo <dnovillo@google.com>
  956. * decl.c (poplevel): Start TV_NAME_LOOKUP conditionally.
  957. 2012-08-20 Richard Guenther <rguenther@suse.de>
  958. * name-lookup.c (store_binding_p): New predicate, split out from ...
  959. (store_binding): ... here. Always store binding and require
  960. target vector with enough space.
  961. (store_bindings): Collect to store bindings and reserve space
  962. for them, then store them.
  963. (store_class_bindings): Likewise.
  964. 2012-08-19 Mikael Morin <mikael@gcc.gnu.org>
  965. * Make-lang.in: Fix typo.
  966. 2012-08-17 Jakub Jelinek <jakub@redhat.com>
  967. * cp-tree.def (SIZEOF_EXPR): Move to c-common.def.
  968. 2012-08-14 Diego Novillo <dnovillo@google.com>
  969. Merge from cxx-conversion branch. Re-write VEC in C++.
  970. * call.c (add_function_candidate): Remove const qualifier
  971. from call to VEC_index.
  972. 2012-08-10 Richard Guenther <rguenther@suse.de>
  973. * error.c (dump_expr): Handle anonymous SSA names.
  974. 2012-08-07 Steven Bosscher <steven@gcc.gnu.org>
  975. * error.c (print_instantiation_context): Pretty-print a newline before
  976. diagnostic_flush_buffer.
  977. * cxx-pretty-print.c (pp_cxx_function_definition): Use
  978. pp_newline_and_flush instead of separate pp_newline and pp_flush.
  979. 2012-08-06 Dodji Seketeli <dodji@redhat.com>
  980. Avoid crashing on erroneous static_assert usage
  981. * semantics.c (finish_static_assert): Don't crash on erroneous
  982. message or condition.
  983. 2012-08-06 Marc Glisse <marc.glisse@inria.fr>
  984. Paolo Carlini <paolo.carlini@oracle.com>
  985. PR c++/54165
  986. * typeck.c (build_static_cast_1): Move the conversion to void case
  987. before the perform_direct_initialization_if_possible call.
  988. 2012-08-03 Marc Glisse <marc.glisse@inria.fr>
  989. * pt.c (tsubst_copy_and_build): Handle VECTOR_TYPE like scalars.
  990. * cp-tree.h (scalarish_type_p): Declare.
  991. * tree.c (scalarish_type_p): Make non-static.
  992. 2012-08-02 Jason Merrill <jason@redhat.com>
  993. Paolo Carlini <paolo.carlini@oracle.com>
  994. PR c++/51213 (again)
  995. * pt.c (type_unification_real): Call push_deferring_access_checks /
  996. pop_deferring_access_checks around the substitution of default
  997. template args.
  998. (instantiate_template_1): When the specialization returned by
  999. retrieve_specialization has FNDECL_HAS_ACCESS_ERRORS set and we
  1000. are in a SFINAE context, simply return error_mark_node.
  1001. * cp-tree.h (FNDECL_RECHECK_ACCESS_P): Rename FNDECL_HAS_ACCESS_ERRORS.
  1002. 2012-07-31 Paolo Carlini <paolo.carlini@oracle.com>
  1003. * pt.c (check_default_tmpl_args): Change is_primary and is_partial
  1004. parameters to bool type, adjust.
  1005. (push_template_decl_real): Tidy.
  1006. * parser.c (cp_parser_init_declarator): Adjust.
  1007. * decl.c (redeclaration_error_message): Likewise.
  1008. * cp-tree.h (check_default_tmpl_args): Update prototype.
  1009. 2012-07-31 Paolo Carlini <paolo.carlini@oracle.com>
  1010. PR c++/53624
  1011. * pt.c (check_default_tmpl_args): Don't check local types.
  1012. 2012-07-25 Sandra Loosemore <sandra@codesourcery.com>
  1013. Paul Brook <paul@codesourcery.com>
  1014. PR target/53633
  1015. * decl.c (finish_function): Check targetm.warn_func_return.
  1016. 2012-07-25 Jason Merrill <jason@redhat.com>
  1017. PR c++/54086
  1018. * decl.c (grokdeclarator): Allow const and constexpr together.
  1019. PR c++/54020
  1020. * semantics.c (potential_constant_expression_1) [COND_EXPR]: Call
  1021. maybe_constant_value.
  1022. * cp-tree.h (tsubst_flags): Remove tf_no_access_control.
  1023. * call.c (standard_conversion): Don't set it.
  1024. * class.c (resolve_address_of_overloaded_function): Don't check it.
  1025. * decl.c (check_default_argument): Call
  1026. perform_implicit_conversion_flags.
  1027. * pt.c (print_candidates_1): Use inform instead of error.
  1028. 2012-07-24 Paolo Carlini <paolo.carlini@oracle.com>
  1029. * pt.c (convert_template_argument, tsubst): Simplify fourth argument
  1030. to make_typename_type (complain & tf_error -> complain).
  1031. 2012-07-24 Steven Bosscher <steven@gcc.gnu.org>
  1032. * class.c (n_vtables, n_vtable_entries, n_vtable_searches,
  1033. n_vtable_elems, n_convert_harshness, n_compute_conversion_costs,
  1034. n_inner_fields_searched): Always define.
  1035. (build_primary_vtable): Convert #ifdef GATHER_STATISTICS to if-code.
  1036. (print_class_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
  1037. * tree.c (depth_reached): Always define global.
  1038. (cxx_print_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
  1039. * pt.c (depth_reached): Always define.
  1040. (push_tinst_level): Convert #ifdef GATHER_STATISTICS to if-code.
  1041. * search.c (n_fields_searched, n_calls_lookup_field,
  1042. n_calls_lookup_field_1, n_calls_lookup_fnfields,
  1043. n_calls_lookup_fnfields_1, n_calls_get_base_type,
  1044. n_outer_fields_searched, n_contexts_saved): Always define.
  1045. (lookup_field_1): Convert #ifdef GATHER_STATISTICS to if-code.
  1046. (lookup_member): Likewise.
  1047. (lookup_fnfields_idx_nolazy): Likewise.
  1048. (print_search_statistics): Likewise.
  1049. (reinit_search_statistics): Unconditionally re-set counters.
  1050. * lex.c (retrofit_lang_decl): Convert #ifdef GATHER_STATISTICS
  1051. to if-code.
  1052. (cxx_dup_lang_specific_decl): Likewise.
  1053. (copy_lang_type): Likewise.
  1054. (cxx_make_type): Likewise.
  1055. 2012-07-20 Jason Merrill <jason@redhat.com>
  1056. PR c++/54038
  1057. * tree.c (build_cplus_array_type): Use build_cplus_array_type to build
  1058. canonical array type rather than mess with its TYPE_*_VARIANT.
  1059. 2012-07-19 Jason Merrill <jason@redhat.com>
  1060. PR c++/54026
  1061. * typeck.c (cp_apply_type_quals_to_decl): Check COMPLETE_TYPE_P.
  1062. PR c++/54021
  1063. * call.c (build_cxx_call): Set optimize when folding
  1064. __builtin_constant_p in a constexpr function.
  1065. 2012-07-18 Jason Merrill <jason@redhat.com>
  1066. * pt.c (instantiate_decl): Don't recheck substitutions.
  1067. 2012-07-18 Paolo Carlini <paolo.carlini@oracle.com>
  1068. Jason Merrill <jason@redhat.com>
  1069. DR 1170
  1070. PR c++/51213
  1071. * semantics.c (perform_access_checks): Add complain parm, return bool.
  1072. (perform_deferred_access_checks): Likewise.
  1073. (perform_or_defer_access_check): Likewise.
  1074. (speculative_access_check): Remove.
  1075. * call.c (enforce_access): Add complain parm, return bool.
  1076. * decl.c, friend.c, class.c, init.c, parser.c: Adjust callers.
  1077. * search.c: Adjust callers.
  1078. * cp-tree.h (TINFO_RECHECK_ACCESS_P): New macro.
  1079. (FNDECL_RECHECK_ACCESS_P): New macro.
  1080. * method.c (synthesized_method_walk): Stop deferring access checks.
  1081. * pt.c (recheck_decl_substitution): New.
  1082. (instantiate_template_1): Set and check FNDECL_RECHECK_ACCESS_P.
  1083. 2012-07-18 Jason Merrill <jason@redhat.com>
  1084. * method.c (process_subob_fn): Make sure no_implicit_p is non-null
  1085. before trying to store through it.
  1086. 2012-07-17 Jason Merrill <jason@redhat.com>
  1087. PR c++/53995
  1088. * decl.c (finish_enum_value_list): Only call
  1089. insert_late_enum_def_into_classtype_sorted_fields in class scope.
  1090. PR c++/53989
  1091. * tree.c (build_cplus_array_type): Also add TYPE_CANONICAL
  1092. to the list of variants.
  1093. * decl.c (xref_basetypes): Complain about incomplete template base.
  1094. * class.c (finish_struct): Adjust variants in templates, too.
  1095. PR c++/53549
  1096. * parser.c (cp_parser_class_head): Call xref_basetypes here.
  1097. (cp_parser_class_specifier_1): Not here.
  1098. * pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms
  1099. as well as DECL_DEPENDENT_P.
  1100. 2012-07-16 Jason Merrill <jason@redhat.com>
  1101. * cp-tree.h (struct deferred_access_check): Add location.
  1102. * semantics.c (perform_access_checks): Use it.
  1103. (perform_or_defer_access_check): Store it.
  1104. 2012-07-16 Steven Bosscher <steven@gcc.gnu.org>
  1105. * dump.c (dump_stmt): Moved here from c-dump.c.
  1106. * optimize.c: Include dumpfile.h instead of tree-dump.h.
  1107. * class.c: Likewise.
  1108. * decl2.c: Likewise.
  1109. * Make-lang.in: Fix dependencies.
  1110. 2012-07-13 Jason Merrill <jason@redhat.com>
  1111. PR c++/53953
  1112. * method.c (synthesized_method_walk): Initialize no_implicit_p sooner.
  1113. 2012-07-12 Jason Merrill <jason@redhat.com>
  1114. * pt.c (instantiate_decl): Check typedefs access here.
  1115. (instantiate_template_1): Not here.
  1116. * pt.c (deduction_tsubst_fntype): Just suppress access checking.
  1117. (instantiate_template_1): Set DECL_TI_TEMPLATE before access checking.
  1118. (push_deduction_access_scope, pop_deduction_access_scope): Remove.
  1119. 2012-07-11 Jason Merrill <jason@redhat.com>
  1120. DR 1402
  1121. * method.c (synthesized_method_walk): Replace uses of msg with diag.
  1122. Correct handling of virtual bases with move operations.
  1123. (process_subob_fn, walk_field_subobs): Replace uses of msg with diag.
  1124. 2012-07-11 Steven Bosscher <steven@gcc.gnu.org>
  1125. * method.c: Do not include tree-pass.h.
  1126. 2012-07-10 Jason Merrill <jason@redhat.com>
  1127. DR 1402
  1128. PR c++/53733
  1129. * cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
  1130. (struct lang_decl_fn): Add suppress_implicit_decl field.
  1131. * method.c (implicitly_declare_fn): Check it.
  1132. (process_subob_fn): Add no_implicit_p parm.
  1133. (walk_field_subobs, synthesized_method_walk): Likewise.
  1134. (maybe_explain_implicit_delete): Adjust.
  1135. (explain_implicit_non_constexpr): Adjust.
  1136. * method.c (synthesized_method_walk): Avoid changing
  1137. EH spec based on cleanups in other places, too.
  1138. 2012-07-09 Sterling Augustine <saugustine@google.com>
  1139. * error.c (lang_decl_name): Use TFF_UNQUALIFIED_NAME flag.
  1140. 2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
  1141. * decl.c (cp_finish_decl): Add FIXME at add_local_decl call site.
  1142. 2012-07-06 Jason Merrill <jason@redhat.com>
  1143. PR c++/53862
  1144. * pt.c (tsubst_arg_types): Add "end" parameter.
  1145. (check_undeduced_parms): Use it.
  1146. * cp-tree.h (DECL_DECLARES_TYPE_P): Check DECL_TYPE_TEMPLATE_P.
  1147. PR c++/53858
  1148. * name-lookup.c (ambiguous_decl): Use DECL_TYPE_TEMPLATE_P.
  1149. 2012-07-05 Jason Merrill <jason@redhat.com>
  1150. PR c++/53039
  1151. * pt.c (arg_from_parm_pack_p): Go back to using same_type_p or
  1152. cp_tree_equal.
  1153. * cp-tree.h (TEMPLATE_PARM_NUM_SIBLINGS): Remove.
  1154. (struct template_parm_index_s): Remove num_siblings.
  1155. * pt.c (fixup_template_parms, fixup_template_parm_index): Remove.
  1156. (fixup_template_type_parm_type): Remove.
  1157. (build_template_parm_index): Remove num_siblings parm.
  1158. (process_template_parm): Likewise.
  1159. * parser.c (cp_parser_template_parameter_list): Adjust.
  1160. * tree.c (cp_tree_equal): Don't compare num_siblings.
  1161. * typeck.c (comp_template_parms_position): Likewise.
  1162. PR c++/50852
  1163. PR c++/53039
  1164. * tree.c (strip_typedefs_expr): New.
  1165. * cp-tree.h: Declare it.
  1166. * pt.c (convert_template_argument, unify): Use it.
  1167. * parser.c (cp_parser_template_declaration_after_export): Don't call
  1168. fixup_template_parms.
  1169. 2012-07-04 Jason Merrill <jason@redhat.com>
  1170. PR c++/53848
  1171. PR c++/53524
  1172. * decl.c (build_enumerator): Don't use build_lang_decl_loc.
  1173. 2012-07-03 Jakub Jelinek <jakub@redhat.com>
  1174. PR c++/53812
  1175. * semantics.c (finish_goto_stmt): Surround computed goto argument
  1176. with CLEANUP_POINT_EXPR if needed.
  1177. 2012-07-02 Jason Merrill <jason@redhat.com>
  1178. PR c++/53619
  1179. * pt.c (in_template_function): New.
  1180. * cp-tree.h: Declare it.
  1181. * class.c (build_base_path, resolves_to_fixed_type_p): Use it.
  1182. PR c++/53783
  1183. * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Use tsubst
  1184. for LAMBDA_EXPR_EXTRA_SCOPE.
  1185. PR c++/53788
  1186. * pt.c (build_non_dependent_expr): Don't wrap a dummy object.
  1187. PR c++/53816
  1188. * class.c (resolves_to_fixed_type_p): Check uses_template_parms
  1189. (current_function_decl) instead of processing_template_decl.
  1190. PR c++/53821
  1191. * semantics.c (maybe_add_lambda_conv_op): Don't set
  1192. DECL_INTERFACE_KNOWN.
  1193. PR c++/53524
  1194. * call.c (build_conditional_expr_1): Don't warn about comparison of
  1195. two enumerators before their enumeration is complete.
  1196. (build_new_op_1): Call decay_conversion before warn_logical_operator.
  1197. * decl.c (build_enumerator): Set DECL_CONTEXT of an enumerator to
  1198. its enumeration.
  1199. * decl2.c (mark_used): Call used_types_insert for enums.
  1200. * semantics.c (finish_id_expression): Don't decay CONST_DECL.
  1201. (finish_member_declaration): Don't change DECL_CONTEXT of enumerators.
  1202. * class.c (check_field_decls): Don't change DECL_CONTEXT of enums.
  1203. * typeck.c (convert_for_assignment): Don't decay CONST_DECL.
  1204. (build_class_member_access_expr): Look through unscoped enums.
  1205. * search.c (context_for_name_lookup): Look through unscoped enums.
  1206. * pt.c (tsubst_copy_and_build): Don't decay CONST_DECL.
  1207. (tsubst_copy): Use DECL_CONTEXT to find the enumeration.
  1208. * tree.c (decl_linkage): Likewise.
  1209. * cvt.c (ocp_convert): Check decayed expr for enum range warning.
  1210. 2012-06-29 Steven Bosscher <steven@gcc.gnu.org>
  1211. * Make-lang.in: Remove tree-mudflap.o from CXX_AND_OBJCXX_OBJS.
  1212. 2012-06-27 Jason Merrill <jason@redhat.com>
  1213. * parser.c (cp_parser_check_for_invalid_template_id): tag_type parm.
  1214. (cp_parser_simple_type_specifier, cp_parser_class_head): Adjust.
  1215. (cp_parser_elaborated_type_specifier): Adjust.
  1216. * decl.c (duplicate_decls): Return error_mark_node on template
  1217. mismatch.
  1218. PR c++/53563
  1219. * parser.c (cp_parser_template_id): Add tag_type parm.
  1220. (cp_parser_template_name): Likewise.
  1221. (cp_parser_id_expression, cp_parser_unqualified_id): Adjust.
  1222. (cp_parser_pseudo_destructor_name, cp_parser_type_name): Adjust.
  1223. (cp_parser_simple_type_specifier, cp_parser_class_name): Adjust.
  1224. (cp_parser_elaborated_type_specifier, cp_parser_class_head): Adjust.
  1225. 2012-06-27 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
  1226. PR C++/51033
  1227. * semantics.c (constexpr_call): Fix typo in comment.
  1228. (cxx_eval_vec_perm_expr): New.
  1229. (cxx_eval_constant_expression): Fold VEC_PERM_EXPRs.
  1230. 2012-06-26 Richard Guenther <rguenther@suse.de>
  1231. PR c++/53752
  1232. * mangle.c (write_array_type): Truncate the number-of-elements
  1233. result.
  1234. 2012-06-25 Jason Merrill <jason@redhat.com>
  1235. PR c++/53498
  1236. PR c++/53305
  1237. * pt.c (tsubst_decl) [PARM_DECL]: Don't recurse into DECL_CHAIN
  1238. if cp_unevaluated_operand is set.
  1239. (tsubst_copy) [PARM_DECL]: Don't copy before tsubsting.
  1240. PR c++/52988
  1241. * typeck.c (decay_conversion): Don't discard side-effects from
  1242. expressions of nullptr_t.
  1243. 2012-06-25 Florian Weimer <fweimer@redhat.com>
  1244. * init.c (build_new_1): Warn about (T[N]) for variable N, and
  1245. reject T[M][N].
  1246. * parser.c (cp_parser_direct_new_declarator): Accept non-constant
  1247. expressions. Handled now in build_new_1.
  1248. 2012-06-25 Jason Merrill <jason@redhat.com>
  1249. PR c++/53202
  1250. * semantics.c (build_data_member_initialization): Always keep
  1251. initializer for empty base.
  1252. (cxx_eval_bare_aggregate): Discard it here.
  1253. PR c++/53565
  1254. * pt.c (tsubst_omp_for_iterator): Simplify DECL_EXPR handling.
  1255. (tsubst_expr) [OMP_FOR]: Here, too.
  1256. 2012-06-25 Jakub Jelinek <jakub@redhat.com>
  1257. PR c++/53594
  1258. * class.c (check_bases_and_members): Avoid -Wuninitialized
  1259. diagnostics for non-static const members or references if they
  1260. use NSDMI.
  1261. 2012-06-16 Ville Voutilainen <ville.voutilainen@gmail.com>
  1262. * parser.c (cp_parser_direct_declarator): Move virt-specifier
  1263. parsing after late-specified return type parsing.
  1264. 2012-06-14 Jason Merrill <jason@redhat.com>
  1265. PR c++/53651
  1266. * name-lookup.c (constructor_name_p): Don't try to look at the
  1267. name of a DECLTYPE_TYPE.
  1268. 2012-06-18 Lawrence Crowl <crowl@google.com>
  1269. * decl2.c (cp_write_global_declarations): Rename use of TV_PHASE_CGRAPH
  1270. to TV_PHASE_OPT_GEN.
  1271. 2012-06-18 Steven Bosscher <steven@gcc.gnu.org>
  1272. * decl.c (finish_function): Remove code conditional on VMS_TARGET.
  1273. 2012-06-15 Marc Glisse <marc.glisse@inria.fr>
  1274. PR c++/51033
  1275. * semantics.c (literal_type_p): Handle VECTOR_TYPE.
  1276. (potential_constant_expression_1): Handle VEC_PERM_EXPR.
  1277. * parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_SHUFFLE.
  1278. 2012-06-09 Jason Merrill <jason@redhat.com>
  1279. * pt.c (tsubst_expr) [TAG_DEFN]: Instantiate local class.
  1280. * class.c (finish_struct): Don't add a TAG_DEFN for a lambda.
  1281. * decl2.c (finish_static_data_member_decl): Avoid redundant error.
  1282. PR c++/53599
  1283. * name-lookup.c (pushtag_1): Add a DECL_EXPR for a local class.
  1284. * semantics.c (finish_cond): Build a COMPOUND_EXPR.
  1285. * pt.c (tsubst_expr) [COMPOUND_EXPR]: Handle.
  1286. [DECL_EXPR]: Don't call cp_finish_decl for an implicit typedef.
  1287. Don't return the decl.
  1288. 2012-06-11 Richard Guenther <rguenther@suse.de>
  1289. PR c++/53605
  1290. * mangle.c (write_array_type): Use double-ints for array domain
  1291. arithmetic.
  1292. 2012-06-07 Fabien Chêne <fabien@gcc.gnu.org>
  1293. PR c++/51214
  1294. * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
  1295. Declare.
  1296. * class.c (insert_into_classtype_sorted_fields): New.
  1297. (add_enum_fields_to_record_type): New.
  1298. (count_fields): Adjust the comment.
  1299. (add_fields_to_record_type): Likewise.
  1300. (finish_struct_1): Move the code that inserts the fields for the
  1301. sorted case, into insert_into_classtype_sorted_fields, and call
  1302. it.
  1303. (insert_late_enum_def_into_classtype_sorted_fields): Define.
  1304. * decl.c (finish_enum_value_list): Call
  1305. insert_late_enum_def_into_classtype_sorted_fields if a late enum
  1306. definition is encountered.
  1307. 2012-06-06 Paolo Carlini <paolo.carlini@oracle.com>
  1308. PR c++/53567
  1309. * typeck.c (cp_perform_integral_promotions): New, like
  1310. perform_integral_promotions but also takes a tsubst_flags_t parameter.
  1311. (pointer_diff): Add tsubst_flags_t parameter.
  1312. (decay_conversion, cp_default_conversion, cp_build_array_ref,
  1313. cp_build_binary_op, cp_build_unary_op, build_static_cast_1,
  1314. build_reinterpret_cast_1, cp_build_modify_expr,
  1315. convert_for_assignment): Adjust.
  1316. * optimize.c (build_delete_destructor_body): Adjust.
  1317. * init.c (expand_virtual_init, expand_default_init, build_new_1,
  1318. build_new, build_vec_delete_1, build_vec_init, build_delete): Adjust.
  1319. (construct_virtual_base): Adjust LOOKUP_COMPLAIN -> 0.
  1320. * class.c (build_base_path): Adjust.
  1321. * decl.c (compute_array_index_type, finish_destructor_body): Likewise.
  1322. * method.c (synthesized_method_walk): Adjust flag and complain.
  1323. * rtti.c (ifnonnull): Add tsubst_flags_t parameter.
  1324. (build_typeid, build_dynamic_cast_1): Adjust.
  1325. * except.c (initialize_handler_parm): Likewise.
  1326. * typeck2.c (process_init_constructor_record): Likewise.
  1327. * pt.c (tsubst_friend_class): Don't change flags.
  1328. * semantics.c (finish_goto_stmt, handle_omp_for_class_iterator,
  1329. finish_static_assert): Likewise.
  1330. * parser.c (cp_parser_lookup_name): Just pass 0 as flags to
  1331. lookup_name_real.
  1332. * call.c (build_op_delete_call): Add tsubst_flags_t parameter.
  1333. (convert_like_real, convert_arg_to_ellipsis, convert_for_arg_passing):
  1334. Adjust.
  1335. (standard_conversion): Adjust LOOKUP_COMPLAIN -> 0.
  1336. (implicit_conversion): Mask out tf_error with a FIXME.
  1337. (build_user_type_conversion_1, build_new_op_1, build_over_call): Use
  1338. complain & tf_error instead of flags & LOOKUP_COMPLAIN.
  1339. * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
  1340. build_up_reference, convert_to_reference, cp_convert,
  1341. cp_convert_and_check, ocp_convert, convert_force): Add tsubst_flags_t
  1342. parameter.
  1343. (convert_to_reference, ocp_convert): Use complain & tf_error instead
  1344. of flags & LOOKUP_COMPLAIN.
  1345. (convert_force): Adjust LOOKUP_COMPLAIN -> 0.
  1346. * name-lookup.c (identifier_type_value_1, lookup_qualified_name,
  1347. lookup_name_real, lookup_function_nonclass, lookup_name,
  1348. lookup_name_prefer_type): Adjust LOOKUP_COMPLAIN -> 0.
  1349. * cp-tree.h: Adjust prototypes; remove LOOKUP_COMPLAIN.
  1350. 2012-06-06 Steven Bosscher <steven@gcc.gnu.org>
  1351. * decl.c: Do not include output.h.
  1352. (start_decl): Remove code for flag_conserve_space.
  1353. 2012-06-06 Fabien Chêne <fabien@gcc.gnu.org>
  1354. PR c++/52841
  1355. * parser.c (cp_parser_alias_declaration): Return earlier
  1356. if an error occured.
  1357. 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
  1358. PR c++/53524
  1359. * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
  1360. to control enumeral mismatch in conditional expression too.
  1361. 2012-06-04 Sterling Augustine <saugustine@google.com>
  1362. * cp-tree.h: Declare decl_as_dwarf_string, lang_decl_dwarf_name.
  1363. * cp-lang.c (cxx_dwarf_name): Call them.
  1364. 2012-06-04 Steven Bosscher <steven@gcc.gnu.org>
  1365. * semantics.c: Do not include output.h.
  1366. * decl2.c: Likewise.
  1367. * friend.c: Likewise.
  1368. * typeck.c: Likewise.
  1369. * typeck2.c: Likewise.
  1370. * Make-lang.in: Fix dependencies.
  1371. 2012-06-01 Jason Merrill <jason@redhat.com>
  1372. PR c++/52973
  1373. * parser.c (cp_parser_class_head): Apply attributes here.
  1374. * semantics.c (begin_class_definition): Not here.
  1375. * cp-tree.h: Adjust.
  1376. PR c++/52725
  1377. * parser.c (cp_parser_binary_expression): Bail early if we're parsing
  1378. tentatively and the LHS has a parse error.
  1379. PR c++/53137
  1380. * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
  1381. (instantiate_decl): Don't push_to_top_level for local class methods.
  1382. (instantiate_class_template_1): Or for local classes.
  1383. PR c++/53484
  1384. * pt.c (do_auto_deduction): Don't try to deduce from a
  1385. type-dependent initializer.
  1386. 2012-06-01 Paolo Carlini <paolo.carlini@oracle.com>
  1387. PR c++/26155
  1388. * name-lookup.c (push_namespace): When error recovery is
  1389. impossible just error out in duplicate_decls.
  1390. 2012-05-31 Steven Bosscher <steven@gcc.gnu.org>
  1391. * call.c: Do not include output.h.
  1392. * class.c: Likewise.
  1393. * except.c: Likewise.
  1394. * friend.c: Likewise.
  1395. * init.c: Likewise.
  1396. * lex.c: Likewise.
  1397. * method.c: Likewise.
  1398. * parser.c: Likewise.
  1399. * pt.c: Likewise.
  1400. * rtti.c: Likewise.
  1401. * search.c: Likewise.
  1402. 2012-05-30 Jason Merrill <jason@redhat.com>
  1403. PR c++/53356
  1404. * tree.c (stabilize_init): Handle stabilizing a TARGET_EXPR
  1405. representing a bitwise copy of a glvalue.
  1406. * tree.c (stabilize_expr): Tweak logic.
  1407. PR c++/53356
  1408. * tree.c (stabilize_init): Side effects make the init unstable.
  1409. 2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
  1410. PR c++/53503
  1411. * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
  1412. 2012-05-26 Paolo Carlini <paolo.carlini@oracle.com>
  1413. PR c++/53491
  1414. * tree.c (stabilize_expr): Handle exp of void type.
  1415. 2012-05-26 Jason Merrill <jason@redhat.com>
  1416. PR c++/53220
  1417. * call.c (convert_like_real) [ck_list]: Take array address directly.
  1418. * typeck.c (decay_conversion): Reject decay of an array compound
  1419. literal.
  1420. 2012-05-25 Paolo Carlini <paolo.carlini@oracle.com>
  1421. PR c++/32054
  1422. * parser.c (cp_parser_member_declaration): A storage class is not
  1423. allowed in a declaration of an anonymous aggregate in a class scope.
  1424. 2012-05-24 Uros Bizjak <ubizjak@gmail.com>
  1425. PR obj-c++/53441
  1426. * decl.c (grokdeclarator): Check that current_class_type is non-NULL
  1427. before calling constructor_name_p.
  1428. 2012-05-24 Paolo Carlini <paolo.carlini@oracle.com>
  1429. PR c++/32080
  1430. * parser.c (cp_parser_ctor_initializer_opt_and_function_body,
  1431. cp_parser_function_body): Add a bool parameter, true when parsing
  1432. a function-try-block.
  1433. (cp_parser_function_try_block): Pass true to the above.
  1434. (cp_parser_function_definition_after_declarator,
  1435. cp_parser_function_transaction): Adjust.
  1436. 2012-05-23 Paolo Carlini <paolo.carlini@oracle.com>
  1437. PR c++/29185
  1438. * decl2.c (delete_sanity): Extend 'deleting array' warning to
  1439. any array type.
  1440. 2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
  1441. PR c++/51184
  1442. * decl.c (grokdeclarator): Diagnose functions returning abstract
  1443. class types as TYPENAME.
  1444. * cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add.
  1445. * except.c (is_admissible_throw_operand_or_catch_parameter): Use it.
  1446. * pt.c (tsubst): Likewise.
  1447. * semantics.c (trait_expr_value): Likewise.
  1448. 2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
  1449. PR c++/40821
  1450. * parser.c (cp_parser_attributes_opt): Enforce error checking of
  1451. unbalanced parentheses in the presence of tentative parsing.
  1452. 2012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
  1453. PR c++/39681
  1454. * parser.c (cp_parser_new_type_id): Early return error_mark_node
  1455. if the cp_parser_type_specifier_seq call has type_specifier_seq.type
  1456. error_mark_node; tidy.
  1457. (cp_parser_new_expression): Always initialize nelts to NULL_TREE to
  1458. avoid uninitialized warnings.
  1459. (cp_parser_init_declarator, cp_parser_late_parse_one_default_arg):
  1460. Call cp_parser_skip_to_end_of_statement if cp_parser_initializer
  1461. returns error_mark_node.
  1462. 2012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
  1463. PR c++/53371
  1464. * except.c (is_admissible_throw_operand): Rename to
  1465. is_admissible_throw_operand_or_catch_parameter and handle
  1466. catch parameter too.
  1467. (expand_start_catch_block): Use it.
  1468. (build_throw): Adjust.
  1469. 2012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
  1470. PR c++/44516
  1471. * typeck.c (build_x_array_ref, build_x_conditional_expr,
  1472. build_x_compound_expr, build_x_modify_expr): Add location_t parameter.
  1473. (finish_class_member_access_expr, build_x_indirect_ref,
  1474. build_x_binary_op, build_x_compound_expr_from_list,
  1475. build_x_compound_expr_from_vec): Adjust callers.
  1476. * tree.c (build_min_nt_loc): New.
  1477. (build_min_nt): Remove.
  1478. * typeck2.c (build_x_arrow): Adjust callers.
  1479. * pt.c (tsubst_qualified_id, tsubst_omp_for_iterator,
  1480. tsubst_copy_and_build): Likewise.
  1481. * semantics.c (finish_mem_initializers, handle_omp_for_class_iterator,
  1482. finish_omp_atomic): Likewise.
  1483. * decl2.c (grok_array_decl, build_anon_union_vars): Adjust.
  1484. * parser.c (cp_parser_question_colon_clause,
  1485. cp_parser_assignment_expression, cp_parser_expression,
  1486. cp_parser_template_id, cp_parser_omp_for_loop): Likewise.
  1487. * cp-tree.h: Update.
  1488. 2012-05-16 Dodji Seketeli <dodji@redhat.com>
  1489. PR preprocessor/7263
  1490. * cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all
  1491. the possible declarator specifiers so far.
  1492. (struct cp_decl_specifier_seq::locations): Declare new member.
  1493. (cp_decl_specifier_seq::{specs, type_location}): Remove.
  1494. (decl_spec_seq_has_spec_p): Declare new function.
  1495. * parser.c (cp_parser_check_decl_spec): Remove.
  1496. (set_and_check_decl_spec_loc): Define new static function.
  1497. (decl_spec_seq_has_spec_p): Define new public function.
  1498. (cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt)
  1499. (cp_parser_type_specifier, cp_parser_simple_type_specifier)
  1500. (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
  1501. (cp_parser_alias_declaration): Set the locations for each
  1502. declspec, using set_and_check_decl_spec_loc.
  1503. (cp_parser_explicit_instantiation, cp_parser_init_declarator)
  1504. (cp_parser_member_declaration, cp_parser_init_declarator): Use the
  1505. new declspec location for specifiers. Use the new
  1506. decl_spec_seq_has_spec_p.
  1507. (cp_parser_type_specifier_seq): Use the new
  1508. set_and_check_decl_spec_loc. Stop using
  1509. cp_parser_check_decl_spec. Use the new decl_spec_seq_has_spec_p.
  1510. (, cp_parser_init_declarator): Use the new
  1511. set_and_check_decl_spec_loc.
  1512. (cp_parser_single_declaration, cp_parser_friend_p)
  1513. (cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration):
  1514. Use the new decl_spec_seq_has_spec_p.
  1515. * decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p. Use
  1516. the more precise ds_redefined_builtin_type_spec location for
  1517. diagnostics about re-declaring C++ built-in types.
  1518. (start_decl, grokvardecl, grokdeclarator): Use the new
  1519. decl_spec_seq_has_spec_p.
  1520. 2012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
  1521. PR c++/11856
  1522. * pt.c (tsubst_copy_and_build): Increase / decrease
  1523. c_inhibit_evaluation_warnings around build_x_binary_op call.
  1524. 2012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
  1525. * cp-tree.h (TYPE_PTRMEM_P): Rename to TYPE_PTRDATAMEM_P.
  1526. (TYPE_PTR_TO_MEMBER_P): Rename to TYPE_PTRMEM_P.
  1527. (TYPE_PTR_OR_PTRMEM_P): Add.
  1528. * typeck.c (composite_pointer_type_r, composite_pointer_type,
  1529. common_pointer_type, cp_build_indirect_ref, cp_build_binary_op,
  1530. cp_truthvalue_conversion, convert_ptrmem, build_static_cast_1,
  1531. build_reinterpret_cast_1, build_const_cast_1, comp_ptr_ttypes_real,
  1532. casts_away_constness_r, casts_away_constness): Adjust.
  1533. * init.c (build_zero_init_1): Adjust.
  1534. * class.c (check_field_decls): Likewise.
  1535. * decl.c (check_default_argument): Likewise.
  1536. * rtti.c (target_incomplete_p): Likewise.
  1537. * tree.c (zero_init_p): Likewise.
  1538. * cxx-pretty-print.c (pp_cxx_ptr_operator,
  1539. pp_cxx_abstract_declarator): Likewise.
  1540. * typeck2.c (build_m_component_ref): Likewise.
  1541. * pt.c (convert_nontype_argument, invalid_nontype_parm_type_p,
  1542. dependent_type_p_r): Likewise.
  1543. * call.c (null_member_pointer_value_p, standard_conversion,
  1544. add_builtin_candidate, build_conditional_expr_1, compare_ics):
  1545. Likewise.
  1546. * cp-objcp-common.c (cp_var_mod_type_p): Likewise.
  1547. * cvt.c (cp_convert_to_pointer, ocp_convert,
  1548. perform_qualification_conversions): Likewise.
  1549. * mangle.c (write_type): Likewise.
  1550. * name-lookup.c (arg_assoc_type): Likewise.
  1551. 2012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
  1552. * parser.c (struct cp_parser_expression_stack_entry): Add location_t
  1553. field.
  1554. (cp_parser_binary_expression): Rework to always update at the same
  1555. time tree_type and loc.
  1556. * call.c (print_z_candidate): Add location_t parameter.
  1557. (print_z_candidates, convert_like_real, joust): Adjust.
  1558. 2012-05-11 Alexandre Oliva <aoliva@redhat.com>
  1559. PR c++/53209
  1560. * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
  1561. 2012-05-11 Paolo Carlini <paolo.carlini@oracle.com>
  1562. PR c++/53305
  1563. * pt.c (tsubst_copy: case PARM_DECL): Return error_mark_node if
  1564. tsubst_decl returns NULL_TREE.
  1565. * cxx-pretty-print.c (pp_cxx_simple_type_specifier): Handle
  1566. BOUND_TEMPLATE_TEMPLATE_PARM.
  1567. 2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
  1568. PR c++/53158
  1569. * cvt.c (ocp_convert): Error out early for void -> bool conversions.
  1570. * typeck.c (decay_conversion): Use error_at.
  1571. * call.c (build_integral_nontype_arg_conv, convert_like_real,
  1572. convert_arg_to_ellipsis, perform_implicit_conversion_flags,
  1573. initialize_reference): Likewise.
  1574. * cvt.c (warn_ref_binding): Add location_t parameter.
  1575. (cp_convert_to_pointer, convert_to_reference, ocp_convert,
  1576. convert_to_void, ): Use error_at and warning_at.
  1577. 2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
  1578. PR c++/53301
  1579. * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
  1580. instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
  1581. 2012-05-06 Paolo Carlini <paolo.carlini@oracle.com>
  1582. PR c++/53152
  1583. * call.c (op_error, build_new_op_1, build_new_op): Add location_t
  1584. parameter.
  1585. (build_conditional_expr_1): Adjust.
  1586. * typeck.c (build_x_indirect_ref, build_x_binary_op,
  1587. build_x_unary_op): Add location_t parameter.
  1588. (rationalize_conditional_expr, build_x_array_ref,
  1589. build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
  1590. Adjust.
  1591. * typeck2.c (build_x_arrow): Add location_t parameter.
  1592. * semantics.c (finish_unary_op_expr): Likewise.
  1593. (finish_increment_expr, handle_omp_for_class_iterator): Adjust.
  1594. * decl2.c (grok_array_decl): Add location_t parameter.
  1595. * parser.c (cp_parser_postfix_open_square_expression,
  1596. cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
  1597. cp_parser_binary_expression, cp_parser_builtin_offsetof,
  1598. do_range_for_auto_deduction, cp_convert_range_for,
  1599. cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
  1600. location, adjust.
  1601. * pt.c (tsubst_copy_and_build): Adjust.
  1602. * tree.c (maybe_dummy_object): Likewise.
  1603. * cp-tree.h: Update declarations.
  1604. 2012-05-04 Paolo Carlini <paolo.carlini@oracle.com>
  1605. * semantics.c (cxx_eval_constant_expression, case CONVERT_EXPR): Tidy.
  1606. 2012-05-04 Paolo Carlini <paolo.carlini@oracle.com>
  1607. PR c++/53166
  1608. * pt.c (instantiate_class_template_1): Increase / decrease
  1609. c_inhibit_evaluation_warnings around the tsubst_expr call
  1610. for STATIC_ASSERT_CONDITION.
  1611. (tsubst_expr, case STATIC_ASSERT): Likewise.
  1612. * typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check
  1613. c_inhibit_evaluation_warnings in the OPT_Waddress warnings.
  1614. 2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
  1615. PR c++/53186
  1616. * call.c (build_over_call): Handle final member functions
  1617. and class types.
  1618. (build_new_method_call_1): Do not handle here.
  1619. 2012-05-02 Richard Guenther <rguenther@suse.de>
  1620. * decl.c (grokdeclarator): Properly check for sizes that
  1621. cover more than half of the address-space.
  1622. 2012-04-30 Marc Glisse <marc.glisse@inria.fr>
  1623. PR c++/51033
  1624. * typeck.c (cp_build_array_ref): Handle VECTOR_TYPE.
  1625. * decl2.c (grok_array_decl): Likewise.
  1626. PR c++/51314
  1627. * parser.c (cp_parser_sizeof_operand): Require parentheses for
  1628. sizeof...
  1629. 2012-04-30 Dodji Seketeli <dodji@redhat.com>
  1630. Fix location for static class members
  1631. * decl.c (grokdeclarator): Use the location carried by the
  1632. declarator for the DECL of the static class member.
  1633. Fix va_arg type location
  1634. * cp-tree.h (build_x_va_arg): Take an additional location
  1635. parameter.
  1636. * call.c (build_x_va_arg): Take a loc parameter for the location
  1637. of the type of the va_arg expression.
  1638. * parser.c (cp_parser_primary_expression): Pass the type of the
  1639. type in the va_arg expression to build_x_va_arg.
  1640. * pt.c (tsubst_copy): Adjust calls to build_x_va_arg.
  1641. Make conversion warnings work on NULL with -ftrack-macro-expansion
  1642. * call.c (conversion_null_warnings): Use the new
  1643. expansion_point_location_if_in_system_header.
  1644. * cvt.c (build_expr_type_conversion): Likewise.
  1645. * typeck.c (cp_build_binary_op): Likewise.
  1646. 2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
  1647. * typeck.c (convert_for_assignment): Replace
  1648. Wmissing-format-attribute with Wsuggest-attribute=format.
  1649. * call.c (convert_for_arg_passing): Likewise.
  1650. 2012-04-26 Paolo Carlini <paolo.carlini@oracle.com>
  1651. PR c++/53096
  1652. * class.c (check_bases_and_members): Implement core/1333, do not
  1653. disallow defaulted in the class body non-const ref special members.
  1654. 2012-04-24 Paolo Carlini <paolo.carlini@oracle.com>
  1655. PR c++/52363
  1656. * call.c (tourney, perform_overload_resolution,
  1657. build_operator_new_call, build_user_type_conversion_1,
  1658. build_user_type_conversion, perform_overload_resolution,
  1659. add_template_candidate, add_template_candidate_real,
  1660. add_template_conv_candidate, add_builtin_candidates,
  1661. add_builtin_candidate, build_builtin_candidate,
  1662. add_conv_candidate, add_function_candidate, implicit_conversion,
  1663. reference_binding, build_list_conv, conditional_conversion,
  1664. add_candidates, can_convert_array, build_aggr_conv,
  1665. build_array_conv, build_complex_conv, conditional_conversion):
  1666. Add tsubst_flags_t parameter.
  1667. (joust): Likewise, use it to handle SFINAE as if pedantic.
  1668. (add_list_candidates, build_integral_nontype_arg_conv,
  1669. perform_overload_resolution, build_new_function_call,
  1670. build_operator_new_call, build_op_call_1,
  1671. build_conditional_expr_1, build_new_op_1, convert_like_real,
  1672. convert_arg_to_ellipsis, convert_default_arg,
  1673. convert_for_arg_passing, build_over_call,
  1674. build_new_method_call_1, can_convert_arg, can_convert_arg_bad,
  1675. perform_implicit_conversion_flags,
  1676. perform_direct_initialization_if_possible,
  1677. initialize_reference): Adjust.
  1678. * typeck.c (casts_away_constness, casts_away_constness_r):
  1679. Add tsubst_flags_t parameter.
  1680. (convert_arguments, check_for_casting_away_constness,
  1681. build_static_cast_1, build_ptrmemfunc, convert_for_assignment):
  1682. Adjust.
  1683. * decl.c (reshape_init_r, check_default_argument): Likewise.
  1684. * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
  1685. * pt.c (convert_nontype_argument, check_non_deducible_conversion):
  1686. Likewise.
  1687. * init.c (build_new_1): Likewise.
  1688. * cvt.c (convert_to_reference, ocp_convert, build_type_conversion,
  1689. build_expr_type_conversion, ): Likewise.
  1690. * search.c (check_final_overrider): Likewise.
  1691. * cp-tree.h (build_user_type_conversion,
  1692. build_operator_new_call, can_convert, can_convert_arg,
  1693. can_convert_arg_bad, convert_default_arg,
  1694. convert_arg_to_ellipsis, convert_for_arg_passing):
  1695. Adjust declaration.
  1696. 2012-04-22 Jan Hubicka <jh@suse.cz>
  1697. * decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they
  1698. gets finalized.
  1699. 2012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
  1700. PR c/44774
  1701. * typeck.c (composite_pointer_type): Likewise.
  1702. (cxx_sizeof_or_alignof_type): Likewise.
  1703. (cp_build_array_ref): Likewise.
  1704. (cp_build_function_call_vec): Likewise.
  1705. (cp_build_addr_expr_1): Likewise.
  1706. (convert_member_func_to_ptr): Likewise.
  1707. * decl.c (check_tag_decl): Likewise.
  1708. (check_static_variable_definition): Likewise.
  1709. (compute_array_index_type): Likewise.
  1710. (create_array_type_for_decl): Likewise.
  1711. (grokdeclarator): Likewise.
  1712. (grok_op_properties): Likewise.
  1713. * error.c (maybe_warn_cpp0x): Likewise.
  1714. * pt.c (maybe_process_partial_specialization): Likewise.
  1715. (convert_template_argument): Likewise.
  1716. (do_decl_instantiation): Likewise.
  1717. (do_type_instantiation): Likewise.
  1718. * parser.c (cp_parser_primary_expression): Likewise.
  1719. (cp_parser_postfix_expression): Likewise.
  1720. (cp_parser_unary_expression): Likewise.
  1721. (cp_parser_question_colon_clause): Likewise.
  1722. (cp_parser_lambda_introducer): Likewise.
  1723. (cp_parser_lambda_declarator_opt): Likewise.
  1724. (cp_parser_compound_statement): Likewise.
  1725. (cp_parser_jump_statement): Likewise.
  1726. (cp_parser_declaration_seq_opt): Likewise.
  1727. (cp_parser_enum_specifier): Likewise.
  1728. (cp_parser_enumerator_list): Likewise.
  1729. (cp_parser_initializer_list): Likewise.
  1730. (cp_parser_member_declaration): Likewise.
  1731. * call.c (build_conditional_expr_1): Likewise.
  1732. * friend.c (make_friend_class): Likewise.
  1733. * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
  1734. 2012-04-21 Jan Hubicka <jh@suse.cz>
  1735. * method.c (make_alias_for): Do not set TREE_SYMBOL_REFERENCED.
  1736. * decl2.c (mark_needed): Likewise.
  1737. (decl_needed_p): Do not test TREE_SYMBOL_REFERENCED.
  1738. * decl2.c (cxx_callgraph_analyze_expr): Remove.
  1739. * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
  1740. * cp-tree.h (cxx_callgraph_analyze_expr): Remove.
  1741. 2012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
  1742. PR 35441
  1743. * typeck.c (cp_build_function_call_vec): Do not pretty-print
  1744. expressions when caret is enabled.
  1745. 2012-04-20 Jan Hubicka <jh@suse.cz>
  1746. PR target/53042
  1747. * decl2.c (maybe_emit_vtables): Do not initialize same_comdat_group
  1748. list when target has no support for it.
  1749. 2012-04-20 Michael Matz <matz@suse.de>
  1750. * error.c (pedwarn_cxx98): Move va_end call after user
  1751. of the va_list.
  1752. 2012-04-18 Paolo Carlini <paolo.carlini@oracle.com>
  1753. PR c++/52422
  1754. * cp-tree.h (build_addr_func, decay_conversion,
  1755. get_member_function_from_ptrfunc,
  1756. build_m_component_ref, convert_member_func_to_ptr):
  1757. Add tsubst_flags_t parameter.
  1758. * typeck.c (cp_default_conversion): Add.
  1759. (decay_conversion, default_conversion,
  1760. get_member_function_from_ptrfunc, convert_member_func_to_ptr):
  1761. Add tsubst_flags_t parameter and use it throughout.
  1762. (cp_build_indirect_ref, cp_build_array_ref,
  1763. cp_build_function_call_vec, convert_arguments, build_x_binary_op,
  1764. cp_build_binary_op, cp_build_unary_op, build_reinterpret_cast_1,
  1765. build_const_cast_1, expand_ptrmemfunc_cst,
  1766. convert_for_initialization): Adjust.
  1767. * init.c (build_vec_init): Adjust.
  1768. * decl.c (grok_reference_init, get_atexit_node): Likewise.
  1769. * rtti.c (build_dynamic_cast_1, tinfo_base_init): Likewise.
  1770. * except.c (build_throw): Likewise.
  1771. * typeck2.c (build_x_arrow): Likewise.
  1772. (build_m_component_ref): Add tsubst_flags_t parameter and
  1773. use it throughout.
  1774. * pt.c (convert_nontype_argument): Adjust.
  1775. * semantics.c (finish_asm_stmt, maybe_add_lambda_conv_op): Likewise.
  1776. * decl2.c (build_offset_ref_call_from_tree): Likewise.
  1777. * call.c (build_addr_func): Add tsubst_flags_t parameter and
  1778. use it throughout.
  1779. (build_call_a, build_conditional_expr_1, build_new_op_1,
  1780. convert_like_real, convert_arg_to_ellipsis, build_over_call,
  1781. build_special_member_call): Adjust.
  1782. * cvt.c (cp_convert_to_pointer, force_rvalue,
  1783. build_expr_type_conversion): Likewise.
  1784. 2012-04-17 Tom de Vries <tom@codesourcery.com>
  1785. * cp-gimplify.c (begin_bc_block): Add location parameter and use as
  1786. location argument to create_artificial_label.
  1787. (finish_bc_block): Change return type to void. Remove body_seq
  1788. parameter, and add block parameter. Append label to STMT_LIST and
  1789. return in block.
  1790. (gimplify_cp_loop, gimplify_for_stmt, gimplify_while_stmt)
  1791. (gimplify_do_stmt, gimplify_switch_stmt): Remove function.
  1792. (genericize_cp_loop, genericize_for_stmt, genericize_while_stmt)
  1793. (genericize_do_stmt, genericize_switch_stmt, genericize_continue_stmt)
  1794. (genericize_break_stmt, genericize_omp_for_stmt): New function.
  1795. (cp_gimplify_omp_for): Remove bc_continue processing.
  1796. (cp_gimplify_expr): Genericize VEC_INIT_EXPR.
  1797. (cp_gimplify_expr): Mark FOR_STMT, WHILE_STMT, DO_STMT, SWITCH_STMT,
  1798. CONTINUE_STMT, and BREAK_STMT as unreachable.
  1799. (cp_genericize_r): Genericize FOR_STMT, WHILE_STMT, DO_STMT,
  1800. SWITCH_STMT, CONTINUE_STMT, BREAK_STMT and OMP_FOR.
  1801. (cp_genericize_tree): New function, factored out of ...
  1802. (cp_genericize): ... this function.
  1803. 2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
  1804. PR c++/52599
  1805. * semantics.c (build_constexpr_constructor_member_initializers):
  1806. Check for function-try-block as function-body.
  1807. 2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
  1808. PR c++/53003
  1809. * parser.c (cp_parser_member_declaration): Check that
  1810. initializer_token_start is non null before dereferencing it.
  1811. 2012-04-16 Jason Merrill <jason@redhat.com>
  1812. PR c++/38543
  1813. * pt.c (determine_specialization): Instead of comparing the number
  1814. of parms, check that tsubst gives the right answer.
  1815. PR c++/52008
  1816. * pt.c (process_partial_specialization): Complain about a partial
  1817. specialization with fewer args than primary template parms.
  1818. PR c++/50830
  1819. * pt.c (convert_template_argument): Handle template template
  1820. argument packs.
  1821. PR c++/50303
  1822. * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
  1823. template parameters.
  1824. 2012-04-16 Paolo Carlini <paolo.carlini@oracle.com>
  1825. PR c++/49152
  1826. * call.c (op_error): Print types; when flag_diagnostics_show_caret
  1827. is false print expressions too.
  1828. (op_error_string): Add.
  1829. 2012-04-16 Jason Merrill <jason@redhat.com>
  1830. PR c++/51148
  1831. * friend.c (make_friend_class): Call check_for_bare_parameter_packs.
  1832. 2012-04-16 Jan Hubicka <jh@suse.cz>
  1833. * decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH
  1834. walkers to walk cgraph and varpool.
  1835. 2012-04-15 Jason Merrill <jason@redhat.com>
  1836. PR c++/47220
  1837. * pt.c (coerce_template_parameter_pack): Check for error_mark_node.
  1838. PR c++/52292
  1839. PR c++/52380
  1840. * pt.c (coerce_template_parms): Even if we aren't converting we
  1841. want to expand argument packs.
  1842. PR c++/52706
  1843. * mangle.c (write_type): nullptr_t is a builtin type.
  1844. 2012-04-14 Jan Hubicka <jh@suse.cz>
  1845. * tree.c: Update field referenced for new cgraph/varpool layout.
  1846. * decl2.c: Likewise.
  1847. 2012-04-13 Jason Merrill <jason@redhat.com>
  1848. PR c++/52824
  1849. * pt.c (any_pack_expanson_args_p): New.
  1850. (coerce_template_parms): Use it.
  1851. PR c++/52905
  1852. * call.c (joust): Handle comparing list and non-list ctors.
  1853. PR c++/52915
  1854. * decl2.c (finish_anon_union): Use cp_finish_decl.
  1855. * error.c (dump_function_name): Avoid showing anonymous "name".
  1856. 2012-04-11 Fabien Chêne <fabien@gcc.gnu.org>
  1857. PR c++/52465
  1858. * parser.c (cp_parser_class_name): Call strip_using_decl and
  1859. return the target decl.
  1860. * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
  1861. to be stripped is NULL_TREE.
  1862. (qualify_lookup): Call strip_using_decl and perform some checks on
  1863. the target decl.
  1864. 2012-04-11 Jason Merrill <jason@redhat.com>
  1865. PR debug/45088
  1866. * decl.c (grokdeclarator): Strip the injected-class-name typedef
  1867. if we are building a declaration or compound type.
  1868. PR c++/52906
  1869. * decl.c (check_tag_decl): Don't complain about attributes if we
  1870. don't even have a type.
  1871. 2012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
  1872. * cvt.c (convert_to_void): Update comment.
  1873. 2012-04-05 Jason Merrill <jason@redhat.com>
  1874. PR c++/52596
  1875. * semantics.c (finish_non_static_data_member): In templates, pass
  1876. the decl to build_qualified_name.
  1877. * tree.c (lvalue_kind) [SCOPE_REF]: Handle FIELD_DECL.
  1878. 2012-04-04 Jason Merrill <jason@redhat.com>
  1879. PR c++/52845
  1880. * decl.c (finish_function): Update fntype after deducing return type.
  1881. 2012-04-03 Jason Merrill <jason@redhat.com>
  1882. PR c++/52796
  1883. * pt.c (tsubst_initializer_list): A pack expansion with no elements
  1884. means value-initialization.
  1885. 2012-04-01 Paolo Carlini <paolo.carlini@oracle.com>
  1886. PR c++/50043
  1887. * class.c (deduce_noexcept_on_destructor,
  1888. deduce_noexcept_on_destructors): New.
  1889. (check_bases_and_members): Call the latter.
  1890. * decl.c (grokfndecl): Call the former.
  1891. * method.c (implicitly_declare_fn): Not static.
  1892. * cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
  1893. Declare
  1894. 2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
  1895. PR c++/52718
  1896. * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
  1897. warn for a zero as null pointer constant default argument.
  1898. 2012-03-29 Jason Merrill <jason@redhat.com>
  1899. PR c++/52685
  1900. * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
  1901. 2012-03-29 Jakub Jelinek <jakub@redhat.com>
  1902. PR c++/52759
  1903. * decl.c (start_decl): Don't call maybe_apply_pragma_weak
  1904. if processing_template_decl.
  1905. 2012-03-29 Jason Merrill <jason@redhat.com>
  1906. PR c++/52743
  1907. * call.c (compare_ics): Handle ck_aggr like ck_list.
  1908. 2012-03-28 Jason Merrill <jason@redhat.com>
  1909. PR c++/52746
  1910. * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
  1911. we didn't get an explicit scope.
  1912. * pt.c (tsubst_baselink): Likewise.
  1913. 2012-03-28 Richard Guenther <rguenther@suse.de>
  1914. * typeck2.c (process_init_constructor_array): Use the proper
  1915. type for computing the array length.
  1916. 2012-03-27 Meador Inge <meadori@codesourcery.com>
  1917. PR c++/52672
  1918. * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
  1919. stripped child trees that are not pointer types.
  1920. 2012-03-21 Jason Merrill <jason@redhat.com>
  1921. Implement return type deduction for normal functions with -std=c++1y.
  1922. * cp-tree.h (FNDECL_USED_AUTO): New macro.
  1923. (LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): Remove.
  1924. (dependent_lambda_return_type_node): Remove.
  1925. (CPTI_DEPENDENT_LAMBDA_RETURN_TYPE): Remove.
  1926. (struct language_function): Add x_auto_return_pattern field.
  1927. (current_function_auto_return_pattern): New.
  1928. (enum tsubst_flags): Add tf_partial.
  1929. * decl.c (decls_match): Handle auto return comparison.
  1930. (duplicate_decls): Adjust error message for auto return.
  1931. (cxx_init_decl_processing): Remove dependent_lambda_return_type_node.
  1932. (cp_finish_decl): Don't do auto deduction for functions.
  1933. (grokdeclarator): Allow auto return without trailing return type in
  1934. C++1y mode.
  1935. (check_function_type): Defer checking of deduced return type.
  1936. (start_preparsed_function): Set current_function_auto_return_pattern.
  1937. (finish_function): Set deduced return type to void if not previously
  1938. deduced.
  1939. * decl2.c (change_return_type): Handle error_mark_node.
  1940. (mark_used): Always instantiate functions with deduced return type.
  1941. Complain about use if deduction isn't done.
  1942. * parser.c (cp_parser_lambda_declarator_opt): Use 'auto' for
  1943. initial return type.
  1944. (cp_parser_lambda_body): Don't deduce return type in a template.
  1945. (cp_parser_conversion_type_id): Allow auto in C++1y.
  1946. * pt.c (instantiate_class_template_1): Don't mess with
  1947. LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P.
  1948. (tsubst_copy_and_build): Likewise.
  1949. (fn_type_unification, tsubst): Don't reduce the template parm level
  1950. of 'auto' during deduction.
  1951. (unify): Compare 'auto' specially.
  1952. (get_bindings): Change test.
  1953. (always_instantiate_p): Always instantiate functions with deduced
  1954. return type.
  1955. (do_auto_deduction): Handle error_mark_node and lambda context.
  1956. Don't check for use in initializer.
  1957. (contains_auto_r): Remove.
  1958. * search.c (lookup_conversions_r): Handle auto conversion function.
  1959. * semantics.c (lambda_return_type): Handle null return. Don't mess
  1960. with dependent_lambda_return_type_node.
  1961. (apply_deduced_return_type): Rename from apply_lambda_return_type.
  1962. * typeck.c (merge_types): Handle auto.
  1963. (check_return_expr): Do auto deduction.
  1964. * typeck2.c (add_exception_specifier): Fix complain check.
  1965. 2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
  1966. PR c++/52487
  1967. * class.c (check_field_decls): Call literal_type_p only
  1968. on complete types.
  1969. 2012-03-22 Jakub Jelinek <jakub@redhat.com>
  1970. PR c++/52671
  1971. * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
  1972. on CLASS_TYPE_P types.
  1973. 2012-03-20 Jason Merrill <jason@redhat.com>
  1974. * lex.c (init_reswords): Use >= for cxx_dialect test.
  1975. * parser.c (cp_parser_exception_specification_opt): Likewise.
  1976. * mangle.c (write_type): Handle 'auto'.
  1977. * init.c (build_new): Don't do auto deduction where it might
  1978. affect template mangling.
  1979. PR c++/52510
  1980. * decl.c (reshape_init_class): Handle repeated reshaping.
  1981. * search.c (lookup_field_1): Add sanity check.
  1982. 2012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
  1983. PR c++/14710
  1984. * cp-tree.h (xvalue_p, maybe_warn_about_useless_cast): Declare.
  1985. * tree.c (xvalue_p): Define.
  1986. * typeck.c (maybe_warn_about_useless_cast): Define.
  1987. (build_reinterpret_cast, build_const_cast,
  1988. build_static_cast, cp_build_c_cast): Use maybe_warn_about_useless_cast.
  1989. * rtti.c (build_dynamic_cast): Likewise.
  1990. * pt.c (tsubst_copy_and_build, case CAST_EXPR): Increment/decrement
  1991. c_inhibit_evaluation_warnings before/after the build_* calls.
  1992. 2012-03-15 Jason Merrill <jason@redhat.com>
  1993. PR c++/52582
  1994. * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
  1995. 2012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
  1996. PR c++/44783
  1997. * error.c (print_instantiation_partial_context): Use
  1998. template_backtrace_limit.
  1999. 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  2000. * Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
  2001. 2012-03-14 Jakub Jelinek <jakub@redhat.com>
  2002. PR c++/52521
  2003. * parser.c (lookup_literal_operator): Return fn only if
  2004. processed all arguments from args vector and argtypes is
  2005. void_list_node.
  2006. 2012-01-30 Dodji Seketeli <dodji@redhat.com>
  2007. PR c++/51641
  2008. * cp-tree.h (template_type_parameter_p): Declare new function.
  2009. (parameter_of_template_p): Remove.
  2010. * pt.c (template_type_parameter_p): Define new function.
  2011. (parameter_of_template_p): Remove.
  2012. * name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
  2013. on parameter_of_template_p anymore. Compare the level of the
  2014. template parameter to the depth of the template.
  2015. 2011-12-15 Dodji Seketeli <dodji@redhat.com>
  2016. * call.c (standard_conversion, build_integral_nontype_arg_conv)
  2017. (build_new_op_1, convert_like_real, is_subseq)
  2018. (maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics)
  2019. (joust): Use next_conversion instead of accessing fields of struct
  2020. conversion directly.
  2021. 2012-03-12 Paolo Carlini <paolo.carlini@oracle.com>
  2022. PR c++/52299
  2023. * pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus
  2024. division by zero warnings.
  2025. 2012-03-08 Paolo Carlini <paolo.carlini@oracle.com>
  2026. * typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem,
  2027. build_ptrmemfunc): Consistently forward the tsubst_flags_t
  2028. parameter.
  2029. * call.c (resolve_args): Likewise.
  2030. 2012-03-07 Jason Merrill <jason@redhat.com>
  2031. PR c++/52521
  2032. * mangle.c (write_literal_operator_name): The length comes after the
  2033. operator prefix.
  2034. 2012-03-05 Jakub Jelinek <jakub@redhat.com>
  2035. * pt.c (local_specializations): Change from htab_t into
  2036. struct pointer_map_t *.
  2037. (retrieve_local_specializations, register_local_specialization,
  2038. tsubst_pack_expansion, instantiate_decl): Adjust users.
  2039. (eq_local_specializations, hash_local_specialization): Remove.
  2040. 2012-03-05 Jason Merrill <jason@redhat.com>
  2041. PR c++/51930
  2042. * decl2.c (determine_visibility): Correct calculation of class
  2043. args depth.
  2044. * decl.c (check_tag_decl): Adjust warning.
  2045. * method.c (synthesized_method_walk): Cleanups don't affect the EH
  2046. spec either.
  2047. 2012-03-03 Jason Merrill <jason@redhat.com>
  2048. * init.c (perform_member_init): Cope with uninstantiated NSDMI.
  2049. Core 1270
  2050. * call.c (build_aggr_conv): Call reshape_init.
  2051. (convert_like_real): Likewise.
  2052. * typeck2.c (process_init_constructor): Clear TREE_CONSTANT if
  2053. not all constant.
  2054. * mangle.c (write_nested_name): Use decl_mangling_context.
  2055. (write_prefix, write_template_prefix): Likewise.
  2056. PR c++/36797
  2057. * mangle.c (write_expression): Improve diagnostic for TRAIT_EXPR.
  2058. * class.c (add_method): Always build an OVERLOAD for using-decls.
  2059. * search.c (lookup_member): Handle getting an OVERLOAD for a
  2060. single function.
  2061. 2012-03-02 Paolo Carlini <paolo.carlini@oracle.com>
  2062. PR c++/51989
  2063. * typeck2.c (build_x_arrow): Take a tsubst_flags_t argument and
  2064. propagate it.
  2065. * cp-tree.h (build_x_arrow): Adjust prototype.
  2066. * pt.c (tsubst_copy_and_build): Adjust call.
  2067. * parser.c (cp_parser_postfix_dot_deref_expression): Likewise.
  2068. 2012-03-02 Paolo Carlini <paolo.carlini@oracle.com>
  2069. * name-lookup.c (binding_to_template_parms_of_scope_p): Clean up.
  2070. 2012-02-29 Jason Merrill <jason@redhat.com>
  2071. PR c++/51930
  2072. * decl.c (check_tag_decl): Move warning for misplaced attributes here.
  2073. (shadow_tag): From here.
  2074. * parser.c (cp_parser_explicit_instantiation): Don't warn here.
  2075. 2012-02-21 Jakub Jelinek <jakub@redhat.com>
  2076. PR c++/52312
  2077. * typeck.c (check_literal_operator_args): Initialize *long_double_p
  2078. and *long_long_unsigned_p even if processing_template_decl.
  2079. 2012-02-16 Jason Merrill <jason@redhat.com>
  2080. PR c++/52248
  2081. * decl.c (define_label): Use timevar_cond_start/stop.
  2082. 2012-02-16 Fabien Chêne <fabien@gcc.gnu.org>
  2083. PR c++/52126
  2084. * decl.c (xref_basetypes): Call dependent_scope_p instead of
  2085. dependent_type_p.
  2086. 2012-02-16 Jason Merrill <jason@redhat.com>
  2087. PR c++/51415
  2088. * error.c (dump_expr): Handle lambda closures specifically.
  2089. 2012-02-14 Jason Merrill <jason@redhat.com>
  2090. * parser.c (cp_parser_explicit_instantiation): Give a warning
  2091. for ignored attributes on explicit class instantiation.
  2092. 2012-02-14 Jakub Jelinek <jakub@redhat.com>
  2093. PR c++/52247
  2094. * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
  2095. lookup_label on label's name and set TREE_USED.
  2096. 2012-02-14 Jason Merrill <jason@redhat.com>
  2097. PR c++/39055
  2098. * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
  2099. 2012-02-14 Jakub Jelinek <jakub@redhat.com>
  2100. PR c/52181
  2101. * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
  2102. newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
  2103. 2012-02-07 Jason Merrill <jason@redhat.com>
  2104. PR c++/51675
  2105. * semantics.c (cx_check_missing_mem_inits): Handle unions.
  2106. Fix constexpr default constructor logic.
  2107. PR c++/52035
  2108. * pt.c (tsubst): Strip uninstantiated typedef.
  2109. 2012-02-06 Jason Merrill <jason@redhat.com>
  2110. PR c++/52088
  2111. * cvt.c (build_expr_type_conversion): Check for template conversion.
  2112. 2012-01-31 Jason Merrill <jason@redhat.com>
  2113. PR c++/52043
  2114. * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
  2115. * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
  2116. (tsubst_pack_expansion): Check it.
  2117. 2012-01-29 Paolo Carlini <paolo.carlini@oracle.com>
  2118. PR c++/51327
  2119. * class.c (explain_non_literal_class): Correctly handle implicitly
  2120. deleted constructors.
  2121. 2012-01-27 Jakub Jelinek <jakub@redhat.com>
  2122. PR c++/51852
  2123. * pt.c (tsubst_pack_expansion): Delete and restore
  2124. local_specialization whenever need_local_specialization, not just
  2125. when saved_local_specializations is non-NULL.
  2126. 2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
  2127. PR c++/51370
  2128. * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
  2129. as TREE_OPERAND (t, 1).
  2130. 2012-01-24 Jason Merrill <jason@redhat.com>
  2131. PR c++/51917
  2132. * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
  2133. PR c++/51973
  2134. * tree.c (called_fns_equal): Check template args.
  2135. (cp_tree_equal): Call it.
  2136. 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
  2137. Patrick Marlier <patrick.marlier@gmail.com>
  2138. PR c++/51928
  2139. * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
  2140. thunk for set_one_vmethod_tm_attributes.
  2141. 2012-01-24 Paolo Carlini <paolo.carlini@oracle.com>
  2142. PR c++/51223
  2143. * call.c (build_over_call): Check for error_mark_node as
  2144. TREE_VALUE when default arguments are processed.
  2145. 2012-01-23 Jason Merrill <jason@redhat.com>
  2146. PR c++/51930
  2147. * decl2.c (determine_visibility): Check for visibility attribute
  2148. on template specialization.
  2149. 2012-01-23 Paolo Carlini <paolo.carlini@oracle.com>
  2150. PR c++/51398
  2151. * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
  2152. 2012-01-23 Jason Merrill <jason@redhat.com>
  2153. PR c++/51925
  2154. * class.c (add_method): Set OVL_USED for using-decls.
  2155. * tree.c (ovl_scope): New.
  2156. * cp-tree.h: Declare it.
  2157. * parser.c (cp_parser_template_name): Use it.
  2158. * semantics.c (baselink_for_fns): Likewise.
  2159. * name-lookup.c (set_inherited_value_binding_p): Likewise.
  2160. 2012-01-20 Paolo Carlini <paolo.carlini@oracle.com>
  2161. PR c++/51402
  2162. * pt.c (lookup_template_class_1): Check context returned by
  2163. tsubst for error_mark_node.
  2164. 2012-01-19 Kai Tietz <ktietz@redhat.com>
  2165. PR c++/51344
  2166. * decl2.c (save_template_attributes): Use merge_attributes
  2167. instead of chaining up via TREE_CHAIN.
  2168. 2012-01-19 Jason Merrill <jason@redhat.com>
  2169. PR c++/51889
  2170. * class.c (finish_struct): Call add_method here for function usings.
  2171. * semantics.c (finish_member_declaration): Not here.
  2172. 2012-01-18 Paolo Carlini <paolo.carlini@oracle.com>
  2173. PR c++/51225
  2174. * typeck2.c (store_init_value): Within a template guard
  2175. cxx_constant_value with require_potential_constant_expression.
  2176. * pt.c (convert_nontype_argument): Likewise.
  2177. 2012-01-16 Jakub Jelinek <jakub@redhat.com>
  2178. PR c++/51854
  2179. * mangle.c (write_template_arg_literal): Handle complex.
  2180. 2012-01-16 Jason Merrill <jason@redhat.com>
  2181. PR c++/51827
  2182. * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
  2183. PR c++/51868
  2184. * typeck.c (build_static_cast_1): Handle bit-fields properly.
  2185. 2012-01-13 Ian Lance Taylor <iant@google.com>
  2186. PR c++/50012
  2187. * typeck.c (enum_cast_to_int): New static function.
  2188. (cp_build_binary_op): When handling warn_sign_compare, don't test
  2189. for TREE_NO_WARNING. Do call enum_cast_to_int.
  2190. * call.c (avoid_sign_compare_warnings): Remove static function.
  2191. (build_new_op_1): Don't call avoid_sign_compare_warnings.
  2192. 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
  2193. * decl2.c: Do not include tree-mudflap.h
  2194. * semantics.c: Likewise.
  2195. 2012-01-13 Jason Merrill <jason@redhat.com>
  2196. PR c++/20681
  2197. * semantics.c (finish_break_stmt): Avoid adding an unreachable
  2198. BREAK_STMT.
  2199. PR c++/51813
  2200. * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
  2201. when reducing the visibility.
  2202. PR c++/51620
  2203. * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
  2204. 2012-01-12 Jason Merrill <jason@redhat.com>
  2205. PR c++/51714
  2206. * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
  2207. value-dependent.
  2208. 2012-01-13 Dodji Seketeli <dodji@redhat.com>
  2209. PR c++/51633
  2210. * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
  2211. Set the pointer to the last block of the constructor to the
  2212. current statement.
  2213. (build_constexpr_constructor_member_initializers): Get
  2214. build_data_member_initialization a chance to deal with more
  2215. statements before we choke.
  2216. 2012-01-12 Jason Merrill <jason@redhat.com>
  2217. PR c++/48051
  2218. * mangle.c (write_expression): Mangle BASELINK scope if
  2219. BASELINK_QUALIFIED_P.
  2220. * search.c (adjust_result_of_qualified_name_lookup): Set
  2221. BASELINK_QUALIFIED_P.
  2222. * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
  2223. * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
  2224. adjust_result_of_qualified_name_lookup for non-qualified names.
  2225. PR c++/51403
  2226. * pt.c (unify): Handle error_mark_node.
  2227. 2012-01-11 Jason Merrill <jason@redhat.com>
  2228. PR c++/51565
  2229. * call.c (standard_conversion): For ptrmemfuncs, compare the
  2230. static_fn_types.
  2231. PR c++/51818
  2232. * mangle.c (find_substitution): A type is only a substitution
  2233. match if we're looking for a type.
  2234. (write_nested_name): Use decl_mangling_context.
  2235. * decl.c (decls_match): Assert that the arguments are decls.
  2236. PR c++/51613
  2237. * pt.c (resolve_overloaded_unification): Compare types with
  2238. same_type_p, not decls_match.
  2239. 2012-01-10 Jason Merrill <jason@redhat.com>
  2240. PR c++/51614
  2241. * class.c (build_base_path): Diagnose ambiguous base.
  2242. PR c++/51433
  2243. * semantics.c (cxx_eval_call_expression): Always retry previously
  2244. non-constant expressions.
  2245. 2012-01-06 Jason Merrill <jason@redhat.com>
  2246. DR 686
  2247. PR c++/47450
  2248. * parser.c (cp_parser_new_expression): Set
  2249. type_definition_forbidden_message.
  2250. PR c++/6057
  2251. PR c++/48051
  2252. PR c++/50855
  2253. PR c++/51322
  2254. * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
  2255. THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and
  2256. PREDECREMENT_EXPR.
  2257. (write_template_arg): Fix mangling of class-scope functions and
  2258. argument packs.
  2259. (mangle_decl): Update suggested -fabi-version argument.
  2260. * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
  2261. DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
  2262. * tree.c (dependent_name): No longer static.
  2263. * cp-tree.h: Declare it.
  2264. * pt.c (unify): Defer handling of unconverted functions.
  2265. * mangle.c (mangle_decl): Don't generate mangling aliases
  2266. for maybe-in-charge [cd]tors.
  2267. * error.c (dump_expr): Print type of CONSTRUCTOR.
  2268. 2012-01-05 Dodji Seketeli <dodji@redhat.com>
  2269. PR c++/51541
  2270. * parser.c (cp_parser_alias_declaration): Get out early upon
  2271. errors in the identifier or the attributes.
  2272. 2012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
  2273. PR c++/51064
  2274. * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
  2275. the tree returned by build_x_binary_op.
  2276. 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
  2277. PR c++/51738
  2278. * parser.c (cp_parser_postfix_open_square_expression): Handle
  2279. postfix-expression [ braced-init-list ].
  2280. 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
  2281. PR c++/29273
  2282. * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
  2283. call decay_conversion on v.
  2284. 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
  2285. PR c++/15867
  2286. * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
  2287. declaration followed by specialization.
  2288. 2012-01-03 Jakub Jelinek <jakub@redhat.com>
  2289. PR c++/51669
  2290. * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
  2291. on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
  2292. 2012-01-02 Jason Merrill <jason@redhat.com>
  2293. DR 1359
  2294. PR c++/51675
  2295. * method.c (walk_field_subobs): Don't check for uninitialized
  2296. fields in a union.
  2297. (synthesized_method_walk): Check here.
  2298. DR 325
  2299. PR c++/51666
  2300. * parser.c (cp_parser_cache_defarg): Split out...
  2301. (cp_parser_parameter_declaration): ...from here.
  2302. (cp_parser_save_nsdmi): Use it.
  2303. (cp_parser_cache_group): Remove CPP_COMMA support.
  2304. 2012-01-02 Dodji Seketeli <dodji@redhat.com>
  2305. PR c++/51462
  2306. * semantics.c (cx_check_missing_mem_inits): Don't assert in case
  2307. of error.
  2308. 2012-01-02 Paolo Carlini <paolo.carlini@oracle.com>
  2309. PR c++/20140
  2310. * typeck2.c (digest_init_r): Use copy_init when initializing
  2311. an array of chars.
  2312. 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
  2313. PR c++/16603
  2314. * decl.c (build_enumerator): Don't call perform_integral_promotions
  2315. on the value.
  2316. 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
  2317. PR c++/51379
  2318. * typeck.c (build_reinterpret_cast_1): Implement resolution of
  2319. DR 799.
  2320. 2012-01-01 Fabien Chêne <fabien@gcc.gnu.org>
  2321. * parser.c (cp_parser_using_declaration): Add a warning about
  2322. deprecated access declarations when no errors were encountered
  2323. while parsing the access declaration. Save the first token in
  2324. order to emit the warning at the right place.
  2325. Copyright (C) 2012 Free Software Foundation, Inc.
  2326. Copying and distribution of this file, with or without modification,
  2327. are permitted in any medium without royalty provided the copyright
  2328. notice and this notice are preserved.