ChangeLog-2006 112 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503
  1. 2006-12-31 Simon Martin <simartin@users.sourceforge.net>
  2. PR c++/29731
  3. * parser.c (cp_parser_primary_expression): Return error_mark_node when
  4. a statement-expression is found outside of a function body.
  5. 2006-12-28 Kazu Hirata <kazu@codesourcery.com>
  6. * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
  7. Remove.
  8. * decl2.c: Fix a comment typo.
  9. 2006-12-21 Andrew Pinski <pinskia@gmail.com>
  10. PR C++/30225
  11. * decl.c (cxx_builtin_function): Only copy the decl if adding
  12. it to the std namespace.
  13. 2006-12-21 Andrew Pinski <pinskia@gmail.com>
  14. PR C++/30168
  15. * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
  16. 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
  17. * decl.c: Fix a coment typo.
  18. 2006-12-18 Ian Lance Taylor <iant@google.com>
  19. * decl.c (start_preparsed_function): Add support for
  20. -Wmissing-declarations.
  21. 2006-12-16 Simon Martin <simartin@users.sourceforge.net>
  22. PR c++/29475
  23. * cp-tree.h (struct deferred_access_check): New structure to represent a
  24. deferred access check. It replaces the previous representation as a tree.
  25. (get_deferred_access_checks): Return a vector of struct
  26. deferred_access_check instead of a tree list.
  27. (perform_access_checks): Take a vector of struct deferred_access_check
  28. instead of a tree list.
  29. * semantics.c (struct deferred_access): Store the deferred access checks
  30. as a vector of struct deferred_access_check instead of a tree list.
  31. (push_deferring_access_checks): Handle the change in struct
  32. deferred_access.
  33. (get_deferred_access_checks): Likewise.
  34. (pop_to_parent_deferring_access_checks): Likewise.
  35. (perform_or_defer_access_check): Likewise.
  36. (perform_access_checks): Take a vector of struct deferred_access_check
  37. instead of a tree list.
  38. * parser.c (struct tree_check): New structure to store various data
  39. associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
  40. (struct cp_token): Changed the value field to be a union with a pointer to
  41. a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
  42. tokens and a tree field for all other tokens.
  43. (eof_token): Adjusted due to the change in struct cp_token.
  44. (cp_lexer_get_preprocessor_token): Likewise.
  45. (cp_lexer_purge_token): Likewise.
  46. (cp_lexer_purge_tokens_after): Likewise.
  47. (cp_lexer_print_token): Likewise.
  48. (cp_parser_error): Likewise.
  49. (cp_parser_identifier): Likewise.
  50. (cp_parser_string_literal): Likewise.
  51. (cp_parser_primary_expression): Likewise.
  52. (cp_parser_unqualified_id): Likewise.
  53. (cp_parser_parenthesized_expression_list): Likewise.
  54. (cp_parser_storage_class_specifier_opt): Likewise.
  55. (cp_parser_function_specifier_opt): Likewise.
  56. (cp_parser_type_specifier): Likewise.
  57. (cp_parser_simple_type_specifier): Likewise.
  58. (cp_parser_initializer_list): Likewise.
  59. (cp_parser_member_specification_opt): Likewise.
  60. (cp_parser_attribute_list): Likewise.
  61. (cp_parser_objc_expression): Likewise.
  62. (cp_parser_objc_protocol_qualifiers): Likewise.
  63. (cp_parser_objc_selector): Likewise.
  64. (cp_parser_objc_declaration): Likewise.
  65. (cp_parser_objc_statement): Likewise.
  66. (cp_parser_omp_clause_name): Likewise.
  67. (cp_parser_omp_clause_default): Likewise.
  68. (cp_parser_omp_clause_schedule): Likewise.
  69. (cp_parser_omp_parallel): Likewise.
  70. (cp_parser_initial_pragma): Likewise.
  71. (pragma_lex): Likewise.
  72. (cp_parser_pre_parsed_nested_name_specifier): Likewise.
  73. (cp_parser_nested_name_specifier_opt): Likewise.
  74. Use cp_token::u::tree_check_value to save the token's value, the
  75. associated deferred checks and its qualifying scope.
  76. (cp_parser_template_id): Likewise.
  77. (cp_parser_template_declaration_after_export): Adjusted the call to
  78. get_deferred_access_checks.
  79. (cp_parser_init_declarator): Take the access checks as a vector of struct
  80. deferred_access_check instead of a tree list.
  81. (cp_parser_single_declaration): Likewise.
  82. (cp_parser_perform_template_parameter_access_checks): Likewise.
  83. (cp_parser_simple_declaration): Adjusted the call to
  84. cp_parser_init_declarator.
  85. (cp_parser_explicit_specialization): Adjusted the call to
  86. cp_parser_single_declaration.
  87. 2006-12-13 Ian Lance Taylor <iant@google.com>
  88. PR c++/19564
  89. PR c++/19756
  90. * parser.c (cp_parser_expression_stack_entry): Add field
  91. lhs_type.
  92. (cp_parser_binary_expression): Track tree code of left hand side
  93. of expression. Use it when calling build_x_binary_op.
  94. (cp_parser_selection_statement): Add if_p parameter. Change all
  95. callers. Warn about ambiguous else.
  96. (cp_parser_statement): Add if_p parameter. Change all callers.
  97. (cp_parser_implicitly_scoped_statement): Likewise.
  98. * typeck.c (build_x_binary_op): Add parameters arg1_code and
  99. arg2_code. Change all callers. Call warn_about_parentheses.
  100. * cp-tree.h (build_x_binary_op): Update declaration.
  101. 2006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
  102. * decl.c (build_enumerator): Update error message to match C
  103. front-end.
  104. 2006-12-11 Jan Hubicka <jh@suse.cz>
  105. * decl2.c (var_finalized_p): Update for renamed varpool functions.
  106. 2006-12-09 Zack Weinberg <zackw@panix.com>
  107. * parser.c (yydebug, enum pragma_omp_clause): Delete.
  108. 2006-12-07 Mark Mitchell <mark@codesourcery.com>
  109. PR c++/29732
  110. * cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
  111. (explicit_class_specialization_p): Declare.
  112. * pt.c (explicit_class_specialization_p): New function.
  113. * parser.c (cp_parser_init_declarator): Check correct number of
  114. template parameters for in-class function definitions.
  115. (cp_parser_check_declrator_template_parameters): Stop looking for
  116. template classes when we find an explicit specialization.
  117. 2006-12-07 Lee Millward <lee.millward@codesourcery.com>
  118. PR c++/29980
  119. * cp_parser_elaborated_type_specifier: Check
  120. the return value of check_elaborated_type_specifier.
  121. 2006-12-06 Mark Mitchell <mark@codesourcery.com>
  122. PR c++/29730
  123. * parser.c (cp_parser_init_declarator): Reject initialization of
  124. functions.
  125. 2006-12-05 Mark Mitchell <mark@codesourcery.com>
  126. PR c++/29729
  127. * decl2.c (check_member_template): Move check for member
  128. templates in local classes to ...
  129. * parser.c (cp_parser_template_declaration_after_export):
  130. ... here.
  131. PR c++/29728
  132. * decl.c (check_array_designated_initializer): New function.
  133. (maybe_deduce_size_from_array_init): Use it.
  134. (reshape_init_array): Likewise.
  135. 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
  136. Merge from gimple-tuples-branch.
  137. 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
  138. * cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
  139. (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
  140. (cxx_omp_clause_copy_ctor): Same.
  141. (cxx_omp_clause_assign_op): Same.
  142. 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
  143. * cp-tree.h (union lang_tree_node): Gimple statements do not
  144. have a TREE_CHAIN.
  145. (TREE_INDIRECT_USING): Look in base.
  146. 2006-12-04 Jan Hubicka <jh@suse.cz>
  147. * cp-objcp-common.c (cp_expr_size): Return NULL in the case
  148. size is undefined.
  149. 2006-12-04 Mark Mitchell <mark@codesourcery.com>
  150. PR c++/29733
  151. * pt.c (tsubst_decl): Disallow variables of function type.
  152. PR c++/29632
  153. * call.c (add_builtin_candidate): Do not permit NULL pointer
  154. constants to be compared with template parameters.
  155. 2006-12-04 Eric Botcazou <ebotcazou@adacore.com>
  156. * pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
  157. Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
  158. 2006-12-03 Richard Henderson <rth@redhat.com>
  159. Andrew Pinski <pinskia@gmail.com>
  160. PR C++/14329
  161. * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
  162. 2006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
  163. PR C++/30033
  164. * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
  165. 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
  166. * name-lookup.c: Follow spelling conventions.
  167. 2006-12-01 Geoffrey Keating <geoffk@apple.com>
  168. * decl.c (poplevel): Check DECL_INITIAL invariant.
  169. (duplicate_decls): Preserve DECL_INITIAL when eliminating
  170. a new definition in favour of an old declaration.
  171. (start_preparsed_function): Define and document value of
  172. DECL_INITIAL before and after routine.
  173. (finish_function): Check DECL_INITIAL invariant.
  174. * parser.c
  175. (cp_parser_function_definition_from_specifiers_and_declarator):
  176. Skip duplicate function definitions.
  177. 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  178. PR c++/30022
  179. * typeck.c (type_after_usual_arithmetic_conversions):
  180. Fix assertion for vector types.
  181. (build_binary_op): Use temporary for inner type of vector types.
  182. 2006-12-01 Ryan Mansfield <rmansfield@qnx.com>
  183. PR c++/29066
  184. * typeck.c (build_binary_op): Fix pointer to member function
  185. comparison for ptrmemfunc_vbit_in_delta targets.
  186. 2006-12-01 Dirk Mueller <dmueller@suse.de>
  187. PR c++/18313
  188. * decl.c (grokdeclarator): Warn for type qualifiers on return
  189. type for non-dependent types.
  190. * pt.c (tsubst_function_type): Warn for type qualifiers on
  191. return type for dependent types.
  192. 2006-11-30 Geoffrey Keating <geoffk@apple.com>
  193. * rtti.c (get_tinfo_decl): Handle return value from
  194. pushdecl_top_level_and_finish.
  195. 2006-11-29 Lee Millward <lee.millward@codesourcery.com>
  196. PR c++/29022
  197. * parser.c (cp_parser_class_head): Move processing
  198. of any base classes to...
  199. (cp_parser_class_specifier) ...here. Take an extra
  200. tree* parameter for any base classes. Only process
  201. them if the opening brace was found.
  202. 2006-11-28 Jakub Jelinek <jakub@redhat.com>
  203. PR c++/29735
  204. * decl.c (grokfndecl): Check main's type after applying
  205. attributes, not before.
  206. 2006-11-27 Mark Mitchell <mark@codesourcery.com>
  207. * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
  208. entries for a primary construction virtual table.
  209. 2006-11-26 Mark Mitchell <mark@codesourcery.com>
  210. PR c++/29886
  211. * parser.c (cp_parser): Add in_function_body.
  212. (cp_parser_new): Initialize it.
  213. (cp_parser_primary_expression): Use parser->in_function_body
  214. instead of at_function_scope_p.
  215. (cp_parser_asm_definition): Likewise.
  216. (cp_parser_direct_declarator): Likewise.
  217. (cp_parser_class_specifier): Clear parser->in_function_body.
  218. (cp_parser_constructor_declarator_p): Use parser->in_function_body
  219. instead of at_function_scope_p.
  220. (cp_parser_function_body_after_declarator): Set
  221. parser->in_function_body.
  222. 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
  223. * cp-tree.def (STATIC_ASSERT): New.
  224. * cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
  225. * error.c (dump_decl): Handle STATIC_ASSERT.
  226. * cp-tree.h (STATIC_ASSERT_CONDITION): New.
  227. (STATIC_ASSERT_MESSAGE): New.
  228. (STATIC_ASSERT_SOURCE_LOCATION): New.
  229. (struct tree_static_assert): New.
  230. (enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
  231. (union lang_tree_node): Add static_assertion.
  232. (finish_static_assert): Declare.
  233. * cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
  234. (pp_cxx_declaration): Handle STATIC_ASSERT.
  235. * pt.c (instantiate_class_template): Handle
  236. STATIC_ASSERT members.
  237. (tsubst_expr): Handle STATIC_ASSERT statements.
  238. * semantics.c (finish_static_assert): New.
  239. * lex.c (D_CPP0X): New.
  240. (reswords): Add static_assert keyword.
  241. (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
  242. * parser.c (cp_parser_block_declaration): Parse static
  243. assertions.
  244. (cp_parser_static_assert): New.
  245. (cp_parser_member_declaration): Parse static assertions.
  246. 2006-11-21 Jakub Jelinek <jakub@redhat.com>
  247. PR c++/29570
  248. * decl.c (cp_finish_decl): Check for value dependent brace enclosed
  249. scalar initializer.
  250. PR c++/29734
  251. * cp-tree.h (WANT_VECTOR): Define.
  252. (WANT_ARITH): Add WANT_VECTOR.
  253. * cvt.c (build_expr_type_conversion): Handle vector types.
  254. * typeck.c (build_unary_op): Add WANT_VECTOR to
  255. build_expr_type_conversion flags.
  256. 2006-11-20 Simon Martin <simartin@users.sourceforge.net>
  257. PR c++/29475
  258. * cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
  259. extra argument that represents the declaration to use to print
  260. potential error messages.
  261. * init.c (build_offset_ref): Adjusted the call to
  262. perform_or_defer_access_check.
  263. * class.c (alter_access, resolve_address_of_overloaded_function):
  264. Likewise.
  265. * decl.c (make_typename_type, make_unbound_class_template): Likewise.
  266. * search.c (lookup_member): Likewise.
  267. * friend.c (add_friend): Likewise.
  268. * parser.c (cp_parser_template_id,
  269. cp_parser_pre_parsed_nested_name_specifier): Likewise.
  270. * semantics.c (finish_non_static_data_member,
  271. check_accessibility_of_qualified_id, finish_id_expression): Likewise.
  272. (pop_to_parent_deferring_access_checks, perform_access_checks,
  273. perform_or_defer_access_check): Adjusted the call to enforce_access.
  274. * call.c (enforce_access): Use the new extra argument to build the
  275. error message.
  276. (build_op_delete_call): Adjusted the call to
  277. perform_or_defer_access_check.
  278. (build_over_call): Likewise.
  279. 2006-11-16 Dirk Mueller <dmueller@suse.de>
  280. * name-lookup.c (begin_scope): Use GGC_CNEW instead of
  281. GGC_NEW and memset.
  282. 2006-11-13 Roger Sayle <roger@eyesopen.com>
  283. * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
  284. base type info initializer has the correct type.
  285. 2006-11-13 Mark Mitchell <mark@codesourcery.com>
  286. PR c++/29518
  287. * pt.c (coerce_template_parms): Do not skip_evaluation while
  288. substituting template arguments.
  289. 2006-11-11 Richard Guenther <rguenther@suse.de>
  290. * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
  291. FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
  292. 2006-11-03 Roger Sayle <roger@eyesopen.com>
  293. * call.c (build_op_delete_call): Test user-visible type against
  294. size_type_node, instead of against the internal type, sizetype.
  295. * class.c (type_requires_array_cookie): Likewise.
  296. * mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
  297. handling of TYPE_IS_SIZETYPE.
  298. * typeck.c (type_after_usual_arithmetic_conversions): Remove
  299. special case handling of TYPE_IS_SIZETYPE.
  300. (comptypes): Likewise.
  301. 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
  302. * decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
  303. if targetm.cxx.use_atexit_for cxa_atexit.
  304. (start_cleanup_fn): Likewise.
  305. (register_dtor_fn): Likewise.
  306. 2006-09-25 Geoffrey Keating <geoffk@apple.com>
  307. * decl2.c (cp_write_global_declarations): Rename from
  308. cp_finish_file.
  309. * cp-lang.c (finish_file): Don't call cp_finish_file.
  310. * cp-tree.h (cp_write_global_declarations): Rename from
  311. cp_finish_file.
  312. * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
  313. cp_write_global_declarations.
  314. 2006-10-31 Geoffrey Keating <geoffk@apple.com>
  315. * name-lookup.c (get_anonymous_namespace_name): New.
  316. (push_namespace_with_attribs): Use get_anonymous_namespace_name.
  317. * decl2.c (start_objects): Update for rename of
  318. get_file_function_name_long.
  319. 2006-10-30 Dirk Mueller <dmueller@suse.de>
  320. PR c++/28704
  321. * decl.c (grokdeclarator): Duplicate diagnostic message
  322. for easier translation.
  323. * decl.c (grokdeclarator): Fix line-wrapping.
  324. 2006-10-30 Dirk Mueller <dmueller@suse.de>
  325. PR c++/6321
  326. * decl.c (grokfndecl): Use check_main_parameter_types.
  327. 2006-10-30 Dirk Mueller <dmueller@suse.de>
  328. PR c++/28669
  329. * decl.c (grokfndecl): Duplicate warning message for
  330. easier translation.
  331. 2006-10-30 Dirk Mueller <dmueller@suse.de>
  332. * typeck.c (build_unary_op): Fix indenting. Use G_().
  333. 2006-10-29 Dirk Mueller <dmueller@suse.de>
  334. PR c++/29089
  335. * typeck.c (build_unary_op): Duplicate warning message
  336. for easier translation.
  337. 2006-10-29 Dirk Mueller <dmueller@suse.de>
  338. PR c++/16307
  339. * typeck.c (build_array_ref): Warn for char subscriptions
  340. on pointers.
  341. 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
  342. * decl.c: Fix a comment typo.
  343. 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
  344. PR C++/29295
  345. * typeck.c (build_unary_op): Use same_type_p when comparing to
  346. boolean type.
  347. 2006-10-29 Dirk Mueller <dmueller@suse.de>
  348. PR c++/29033
  349. * typeck.c (build_binary_op): Duplicate warning message
  350. for better translation.
  351. 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
  352. * decl.c (builtin_function_1): Move common code to
  353. add_builtin_function.
  354. (builtin_function): Rename to cxx_builtin_function.
  355. Change the signature.
  356. * call.c: Include langhooks.h.
  357. (build_java_interface_fn_ref): Replace calls to
  358. builtin_function with add_builtin_function.
  359. * Make-lang.in (cp/call.o): Depend on langhooks.h.
  360. * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
  361. cxx_builtin_function.
  362. * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
  363. Change the signature.
  364. 2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
  365. PR c++/20647
  366. * rtti.c (tinfo_base_init): The type info string is always global.
  367. 2006-10-20 Lee Millward <lee.millward@codesourcery.com>
  368. Mark Mitchell <mark@codesourcery.com>
  369. PR c++/28053
  370. * decl2.c (grokbitfield): Detect invalid non-integral
  371. types earlier when possible.
  372. 2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
  373. PR c++/26884
  374. * typeck2.c (digest_init): Raise error upon attempts to
  375. initialize arrays with variables.
  376. 2006-10-17 Lee Millward <lee.millward@codesourcery.com>
  377. PR c++/27952
  378. * cp-tree.h (xref_basetypes): Return bool instead of void.
  379. * decl.c (xref_basetypes): Adjust definition. Return false
  380. if the class bases are invalid.
  381. * parser.c (cp_parser_class_head): Check the return value
  382. from xref_basetypes.
  383. 2006-10-17 Mark Mitchell <mark@codesourcery.com>
  384. PR c++/28261
  385. * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
  386. comment.
  387. PR c++/28261
  388. * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
  389. function.
  390. (cp_parser_constructor_declarator_p): Use it.
  391. (cp_parser_check_type_definition): Return a value indicating
  392. whether or not the definition is valid.
  393. (cp_parser_enum_specifier): Skip invalid enum definitions.
  394. 2006-10-17 Mark Mitchell <mark@codesourcery.com>
  395. PR c++/29039
  396. * typeck2.c (build_functional_cast): Don't zero-initialize
  397. non-PODs; instead, call their constructors.
  398. * method.c (synthesize_method): Always build mem-initializers, if
  399. we're synthesizing the default constructor.
  400. 2006-10-17 Mark Mitchell <mark@codesourcery.com>
  401. PR c++/27270
  402. * decl.c (reshape_init_class): Move check for designated
  403. to ...
  404. * parser.c (cp_parser_initializer_list): ... here.
  405. * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
  406. 2006-10-16 Mark Mitchell <mark@codesourcery.com>
  407. PR c++/27270
  408. * typeck2.c (process_init_constructor_array): Reword comment.
  409. * pt.c (tsubst_copy_and_built): Call reshape_init before calling
  410. digest_init.
  411. PR c++/29408
  412. * parser.c (cp_parser_using_declaration): Stop parsing when
  413. something goes wrong with an access declaration.
  414. PR c++/29435
  415. * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
  416. types when their sizes are required. Refine test for VLAs.
  417. PR c++/28211
  418. * parser.c (cp_parser_template_argument): Don't consider "&var" a
  419. possible constant-expression.
  420. * pt.c (convert_nontype_argument): Refine handling of arguments of
  421. pointer type.
  422. 2006-10-13 Mark Mitchell <mark@codesourcery.com>
  423. PR c++/28506
  424. * parser.c (function_declarator_p): New function.
  425. (cp_parser_init_declarator): Use it.
  426. (cp_parser_member_declaration): Likewise.
  427. 2006-10-12 Mark Mitchell <mark@codesourcery.com>
  428. PR c++/29318
  429. * rtti.c (get_tinfo_decl): Refuse to create type info objects for
  430. variably modified types.
  431. 2006-10-12 Lee Millward <lee.millward@codesourcery.com>
  432. PR c++/27961
  433. * decl.c (start_decl): Return error_mark_node if a
  434. function is initialized like a variable.
  435. (check_var_type): If a variable of field is declared void,
  436. set the type to error_mark_node.
  437. (grokdeclarator): Check the return type of check_var_type.
  438. * class.c (finish_struct_1): Robustify.
  439. 2006-10-11 Mark Mitchell <mark@codesourcery.com>
  440. PR c++/29175
  441. * decl.c (check_initializer): Issue errors about trying to
  442. initialize arrays whose elements have variable size.
  443. 2006-10-11 Lee Millward <lee.millward@codesourcery.com>
  444. PR c++/29024
  445. * cp-tree (struct cp_decl_specifier_seq): Rename to
  446. conflicting_specifiers_p
  447. * parser.c (cp_parser_set_storage_class): Set
  448. conflicting_specifiers_p for the input decl specifier
  449. if a typedef specifier is present. Rename uses of
  450. multiple_specifiers_p to conflicting_specifiers_p.
  451. (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
  452. class specifier has already been set for this declaration,
  453. set conflicting_specifiers_p to true on the decl_specs.
  454. * decl.c (grokdeclarator): Rename uses of
  455. multiple_specifiers_p to conflicting_specifiers_p.
  456. 2006-10-10 Brooks Moses <bmoses@stanford.edu>
  457. * Make-lang.in: Added "c++.pdf" target support.
  458. 2006-10-10 Richard Guenther <rguenther@suse.de>
  459. PR rtl-optimization/29323
  460. * decl.c (finish_function): Set TREE_NOTHROW only for
  461. functions that bind local.
  462. 2006-10-09 Richard Henderson <rth@redhat.com>
  463. Revert emutls patch.
  464. 2006-10-04 Richard Henderson <rth@redhat.com>
  465. Jakub Jelinek <jakub@redhat.com>
  466. * decl.c (grokvardecl): Don't error if !have_tls.
  467. (grokdeclarator): Likewise.
  468. * parser.c (cp_parser_omp_threadprivate): Likewise.
  469. 2006-10-03 Mark Mitchell <mark@codesourcery.com>
  470. PR c++/29020
  471. * friend.c (do_friend): Improve comments; add assertion.
  472. * parser.c (cp_parser_nested_name_specifier_opt): Resolve
  473. typenames for qualified names used in declarations, even when
  474. caching qualified name lookup.
  475. PR c++/29138
  476. * decl2.c (grokfield): Don't handle access declarations here.
  477. * parser.c (cp_parser_using_declaration): Handle access
  478. declarations too.
  479. (cp_parser_block_declaration): Adjust calls to
  480. cp_parser_using_declaration.
  481. (cp_parser_member_declaration): Likewise. Use
  482. cp_parser_using_declaration to look for access_declarations.
  483. 2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  484. PR c++/29291
  485. * init.c (build_new): Check for invalid init.
  486. 2006-10-02 Mark Mitchell <mark@codesourcery.com>
  487. PR c++/29226
  488. * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
  489. not try to actually evaluate sizeof for a VLA type.
  490. 2006-10-01 Mark Mitchell <mark@codesourcery.com>
  491. PR c++/29105
  492. * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
  493. * semantics.c (baselink_for_fns): Build a baselink, even when
  494. processing a template.
  495. PR c++/29080
  496. * parser.c (cp_parser_postfix_dot_deref_expression): Use
  497. BASELINK_ACCESS_BINFO as the qualifying scope when calling
  498. adjust_result_of_qualified_name_lookup.
  499. 2006-09-25 Lee Millward <lee.millward@codesourcery.com>
  500. PR c++/27329
  501. PR c++/26938
  502. * cp-tree.h (redeclare_class_template): Adjust declaration
  503. to return bool instead of void.
  504. * pt.c (redeclare_class_template): Update definition.
  505. Return false on error.
  506. * decl.c (xref_tag): Return error_mark_node if
  507. redeclare_class_template returned false.
  508. PR c++/27667
  509. * cp-tree.h (begin_specialization): Return bool
  510. instead of void.
  511. * pt.c (check_specialization_scope): Likwise.
  512. Adjust comment. Return false if a specialization
  513. isn't permitted in the current scope.
  514. (begin_specialization): Use the return value of
  515. check_specialization_scope.
  516. * parser.c (cp_parser_explicit_specialization): If
  517. begin_specialization returned false, skip the rest
  518. of the specialization.
  519. 2006-09-21 Mark Mitchell <mark@codesourcery.com>
  520. PR c++/29016
  521. * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
  522. BASELINK.
  523. 2006-09-21 Lee Millward <lee.millward@codesourcery.com>
  524. PR c++/28861
  525. * decl.c (shadow_tag): Return error_mark_node
  526. if maybe_process_partial_specialization failed.
  527. PR c++/28303
  528. * decl.c (grokdeclarator): Return error_mark_node on
  529. declaration with two or more data types.
  530. 2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
  531. PR target/27650
  532. * class.c (check_for_override): Remove dllimport from virtual
  533. methods.
  534. 2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
  535. PR c++/29087
  536. * parser.c (cp_parser_labeled_statement): Return nothing. Do
  537. not take in_statement_expr and in_compound as arguments. Rename
  538. to cp_parser_label_for_labeled_statement. Parse only the label,
  539. not the statement.
  540. (cp_parser_statement): Parse the statement of a labeled-statement
  541. from here, using tail recursion.
  542. 2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
  543. PR C++/29002
  544. * init.c (build_zero_init): If we have an error mark node for
  545. the array size, return.
  546. 2006-09-10 Mark Mitchell <mark@codesourcery.com>
  547. PR c++/28991
  548. * cp-objcp-common.c (cxx_staticp): New function.
  549. * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
  550. * cp-tree.h (cxx_staticp): New function.
  551. 2006-09-09 Jason Merrill <jason@redhat.com>
  552. PR c++/28996
  553. * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
  554. 2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  555. PR c++/28858
  556. * parser.c (cp_parser_skip_until_found): Rename to
  557. cp_parser_skip_to_end_of_template_parameter_list. Remove last two
  558. parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
  559. Reorganize. Adjust comment.
  560. (cp_parser_template_declaration_after_export): Adjust call.
  561. (cp_parser_enclosed_template_argument_list): Likewise.
  562. 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
  563. PR C++/28906
  564. * init.c (build_new_1): Build a distinct type copy
  565. for the array type that was returned from
  566. build_cplus_array_type.
  567. 2006-09-07 Jason Merrill <jason@redhat.com>
  568. PR c++/27371
  569. * cvt.c (convert_to_void): Enable previous change.
  570. PR c++/26957
  571. * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
  572. parms.
  573. 2006-09-07 Simon Martin <simartin@users.sourceforge.net>
  574. PR c++/28284
  575. * pt.c (fold_non_dependent_expr): Make sure expr is not
  576. dereferenced if it is NULL.
  577. 2006-09-06 Zak Kipling <zak@transversal.com>
  578. PR c++/26195
  579. * decl.c (make_rtl_for_nonlocal_decl),
  580. (start_preparsed_function): Don't use lbasename on
  581. input_filename when calling get_fileinfo.
  582. * semantics.c (begin_class_definition): Likewise.
  583. * lex.c (cxx_make_type): Likewise.
  584. (handle_pragma_interface): Call get_fileinfo on input_filename,
  585. not on the parameter to the directive.
  586. 2006-09-06 Mark Mitchell <mark@codesourcery.com>
  587. PR c++/28903
  588. * pt.c (tsubst): Use fold_non_dependent_expr to fold array
  589. dimensions.
  590. PR c++/28886
  591. * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
  592. dimensions.
  593. 2006-09-06 Jason Merrill <jason@redhat.com>
  594. PR c++/27371
  595. * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
  596. * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
  597. * tree.c (build_cplus_new): Set it.
  598. PR c++/26696
  599. * cvt.c (convert_to_void): Replace a subexpression with no side
  600. effects with void_zero_node.
  601. * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
  602. (get_first_fn): Ditto.
  603. * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
  604. 2006-09-05 Jason Merrill <jason@redhat.com>
  605. PR c++/26571
  606. * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
  607. where the name is a type used incorrectly.
  608. PR c++/26671
  609. * typeck.c (maybe_warn_about_returning_address_of_local): Look
  610. through COMPONENT_REF and ARRAY_REF.
  611. PR c++/26102
  612. * name-lookup.c (do_class_using_decl): Try to find the base even
  613. if bases_dependent_p.
  614. * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
  615. PR c++/19809
  616. * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
  617. 2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
  618. PR 23287 Revert my 2006-09-01 patch.
  619. * parser.c: Reverted.
  620. * pt.c: Reverted.
  621. 2006-09-02 Lee Millward <lee.millward@codesourcery.com>
  622. PR c++/27670
  623. PR c++/27493
  624. PR c++/27494
  625. PR c++/27397
  626. * parser.c (cp_parser_template_parameter_list): Add
  627. invalid template parameters to the parameter list as
  628. error_mark_node.
  629. 2006-09-02 Jakub Jelinek <jakub@redhat.com>
  630. PR c++/28878
  631. * except.c (build_throw): Only set current_function_returns_abnormally
  632. if cfun is not NULL.
  633. PR c++/26917
  634. * repo.c (repo_file): Remove.
  635. (open_repo_file, reopen_repo_file_for_write): Return fopened
  636. FILE * instead of setting global repo_file variable.
  637. (init_repo): Adjust caller.
  638. (finish_repo): Likewise. Return instead of goto out before
  639. reopen_repo_file_for_write has been called.
  640. 2006-09-01 Nathan Sidwell <nathan@codesourcery.com>
  641. PR c++/28705
  642. * semantics.c (finish_call_expr): Add assert.
  643. * name-lookup.c (lookup_arg_dependent): Check we found an overload
  644. or an object.
  645. PR c++/23287
  646. * parser.c (cp_parser_id_expression): Add member_p
  647. argument. Update all callers.
  648. (cp_parser_unqualified_id): Likewise. Lookup a destructor name in
  649. the object's scope, if valid.
  650. (cp_parser_global_scope_opt): Add object_scope_valid_p. Update
  651. callers.
  652. (cp_parser_postfix_dot_deref_expression): Set object_scope.
  653. * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
  654. 2006-08-30 Jason Merrill <jason@redhat.com>
  655. PR c++/26670
  656. * class.c (check_field_decls): Don't unset TYPE_PACKED until all
  657. the fields have been processed.
  658. 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
  659. PR C++/28349
  660. * call.c (build_x_va_arg): Remove the reference type
  661. from the type before creating the pointer type.
  662. 2006-08-29 J"orn Rennecke <joern.rennecke@st.com>
  663. PR c++/28139
  664. * except.c (expand_start_catch_block): Use correct types for bitwise
  665. copy.
  666. 2006-08-28 Jason Merrill <jason@redhat.com>
  667. PR c++/26670
  668. * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
  669. fields can't be packed.
  670. PR c++/26577
  671. * cvt.c (convert_to_void): Don't automatically load from volatiles
  672. of TREE_ADDRESSABLE type.
  673. 2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  674. PR c++/28860
  675. * cp-tree.h (maybe_process_partial_specialization): Return
  676. tree instead of void.
  677. * parser.c (cp_parser_class_head): Use return value of
  678. maybe_process_partial_specialization.
  679. * pt.c (maybe_process_partial_specialization): Return error_mark_node
  680. for broken specializations, TYPE otherwise. Check for template
  681. template parameters.
  682. 2006-08-27 Mark Mitchell <mark@codesourcery.com>
  683. PR c++/28058
  684. * pt.c (register_specialization): Return error_mark_node for
  685. specialization-after-instantiation.
  686. * decl2.c (mark_used): Mark the main function used when one of its
  687. clones is used.
  688. 2006-08-27 Lee Millward <lee.millward@codesourcery.com>
  689. PR c++/26573
  690. * class.c (check_field_decls): Don't issue error about
  691. local classes containing static data members.
  692. 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
  693. PR c++/24009
  694. * parser.c (struct cp_token): Add input_file_stack_index.
  695. (eof_token): Update.
  696. (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
  697. (cp_lexer_set_source_position_from_token): Restore input file
  698. stack.
  699. 2006-08-26 Lee Millward <lee.millward@codesourcery.com>
  700. PR c++/28736
  701. PR c++/28737
  702. PR c++/28738
  703. * pt.c (process_template_parm): Store invalid template
  704. parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
  705. (push_inline_template_parms_recursive): Check for template
  706. parameters having a TREE_VALUE of error_mark_node rather than
  707. check the parameter itself.
  708. (mangle_class_name_for_template): Likewise.
  709. (comp_template_parms): When comparing the individual template
  710. parameters, return 1 if either is error_mark_node.
  711. (current_template_args): Robustify.
  712. (redeclare_class_template): Likewise.
  713. 2006-08-26 Mark Mitchell <mark@codesourcery.com>
  714. PR c++/28588
  715. * class.c (resolve_address_of_overloaded_function): Add
  716. access_path parameter. Perform access checks.
  717. (instantiate_type): Adjust call to
  718. resolve_address_of_overloaded_function. Remove unnecessary code.
  719. * tree.c (is_overloaded_fn): Document. Return 2 when there are
  720. acutally multiple functions.
  721. (really_overloaded_fn): Use is_overloaded_fn.
  722. * mangle.c (write_expression): Handle BASELINKs.
  723. * cp-tree.h (really_overloaded_fn): Return bool.
  724. (baselink_for_fns): Declare.
  725. * search.c (lookup_member): Check access for single static
  726. functions here.
  727. * pt.c (convert_nontype_argument_function): Handle BASELINKs.
  728. (tsubst_copy_and_build): Generate BASELINKs for template-ids.
  729. * semantics.c (finish_call_expr): Use baselink_for_fns.
  730. (baselink_for_fns): New function.
  731. (finish_id_expression): Use it.
  732. * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
  733. PR c++/28595
  734. * pt.c (tsubst): Issue errors about attempts to create VLAs at
  735. template-instantiation time.
  736. 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  737. PR c++/28853
  738. * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
  739. template parameters. Improve error message for template type
  740. parameters.
  741. PR c++/28852
  742. * cp-tree.h (grok_op_properties): Return bool instead of void.
  743. * decl.c (grokfndecl): Discard invalid operator declarations.
  744. (copy_fn_p): Revert change for PR 27547.
  745. (grok_op_properties): Return error status (true on success).
  746. * pt.c (tsubst_decl): Discard invalid operator declarations.
  747. 2006-08-25 Mark Mitchell <mark@codesourcery.com>
  748. PR c++/28056
  749. * decl.c (grokdeclarator): Disallow declarations with qualified
  750. names in local scopes.
  751. 2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
  752. PR c++/27787
  753. * decl.c (make_typename_type): Only try and resolve it when
  754. context is not dependent. Refactor.
  755. * decl2.c (check_classfn): Push to class scope before looking for
  756. the function.
  757. 2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
  758. PR driver/28528
  759. * g++spec.c (lang_specific_driver): Always check if we need to
  760. swallow a space-separated arg to '-x'.
  761. * lang-specs.h: Don't create ouput files for '-xc++-header'
  762. if -fsyntax-only.
  763. 2006-08-23 Jason Merrill <jason@redhat.com>
  764. PR c++/27714
  765. * pt.c (push_template_decl_real): A friend template with class
  766. scope isn't primary.
  767. 2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
  768. PR c++/28687
  769. * rtti.c (build_dynamic_cast, build_dynamic_cast_1):
  770. Move -fno-rtti check to be more specific.
  771. 2006-08-22 Jason Merrill <jason@redhat.com>
  772. PR c++/23372
  773. * call.c (build_over_call): Don't make a copy here if build_call
  774. will make one too.
  775. 2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
  776. PR C++/28450
  777. * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
  778. COMPLEX_TYPEs.
  779. 2006-08-22 Simon Martin <simartin@users.sourceforge.net>
  780. PR c++/28420
  781. * parser.c (cp_parser_postfix_expression): Make sure that the
  782. saved value for parser->type_definition_forbidden_message is
  783. restored before returning to avoid an invalid free().
  784. 2006-08-22 Jason Merrill <jason@redhat.com>
  785. PR c++/28659
  786. * typeck.c (merge_types): If either of the types have the right
  787. attributes, return that one.
  788. * tree.c (cp_build_type_attribute_variant): Make sure we aren't
  789. doing this to class types.
  790. * typeck.c (original_type): Deal with type quals properly.
  791. 2006-08-21 Jason Merrill <jason@redhat.com>
  792. PR c++/27115
  793. * semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
  794. just leave the expression as it is.
  795. (finish_stmt_expr): If the statement-expression has class type,
  796. wrap it in a TARGET_EXPR.
  797. * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
  798. CLEANUP_POINT_EXPR.
  799. * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
  800. 2006-08-21 Lee Millward <lee.millward@codesourcery.com>
  801. PR c++/26269
  802. * decl.c (duplicate_decls): Return early if either
  803. newdecl or olddecl is error_mark_node.
  804. PR c++/28505
  805. * decl.c (grokdeclarator): Return early after
  806. issuing diagnostic about an incomplete type.
  807. PR c++/28741
  808. * tree.c (decl_anon_ns_mem_p): Robustify.
  809. * decl2.c (determine_visibility): Likewise.
  810. 2006-08-20 Mark Mitchell <mark@codesourcery.com>
  811. PR c++/28341
  812. * tree.c (cast_valid_in_integral_constant_expression_p): New
  813. function.
  814. * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
  815. * pt.c (tsubst_expr): Add integral_constant_expression_p
  816. parameter.
  817. (fold_non_dependent_expr): Adjust callers of
  818. tsubst_{expr,copy_and_build}.
  819. (tsubst_friend_function): Likewise.
  820. (tsubst_template_arg): Likewise.
  821. (tsubst_default_argument): Likewise.
  822. (tsubst_decl): Likewise.
  823. (tsubst): Likewise.
  824. (tsubst_omp_clasuses): Likewise.
  825. (regenerate_decl_fromp_template): Likewise.
  826. (instantiate_decl): Likewise.
  827. (tsubst_initializer_list): Likewise.
  828. (tsubst_enum): Likewise.
  829. (tsubst_expr): Use RECUR throughout.
  830. (tsubst_copy_and_build): Change definition of RECUR. Do not allow
  831. invalid casts in integral constant expressions.
  832. * parser.c (cp_parser_postfix_expression): Use
  833. cast_valid_in_integral_constant_expression_p.
  834. (cp_parser_cast_expression): Likewise.
  835. (cp_parser_functional_cast): Likewise.
  836. PR c++/28346
  837. * pt.c (tsubst_qualified_id): Do not strip references from
  838. OFFSET_REFs.
  839. 2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  840. PR c++/28606
  841. * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
  842. Fix formatting.
  843. (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
  844. for valid type-names.
  845. (cp_parser_unqualified_id): Fix error handling for destructors.
  846. PR c++/28710
  847. * decl.c (xref_tag): Improve error message. Return early on error.
  848. PR c++/28711
  849. * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
  850. 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
  851. PR c++/28573
  852. * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
  853. 2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
  854. PR c++/28302
  855. * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
  856. perform_integral_promotions for non integral type.
  857. 2006-08-16 Jason Merrill <jason@redhat.com>
  858. PR c++/28385
  859. * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
  860. if arg is a function.
  861. 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  862. PR c++/28593
  863. * init.c (build_new): Return early on invalid placement.
  864. 2006-08-15 Lee Millward <lee.millward@codesourcery.com>
  865. PR c++/28594
  866. * pt.c (process_template_parm): Robustify.
  867. 2006-08-14 Steve Ellcey <sje@cup.hp.com>
  868. PR c++/28288
  869. PR c++/14556
  870. * operators.def: Remove <?, ?>, <?=, and >?= operators.
  871. * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
  872. (cp_parser_warn_min_max): Remove.
  873. 2006-08-11 Jason Merrill <jason@redhat.com>
  874. PR c++/28559
  875. * parser.c (cp_parser_elaborated_type_specifier): Also ignore
  876. attributes applied to a TYPENAME_TYPE.
  877. 2006-08-09 Lee Millward <lee.millward@codesourcery.com>
  878. PR c++/28637
  879. * pt.c (coerce_template_parms): Copy across the
  880. invalid template arguments to the new template inner arguments.
  881. (retrieve_specialization): Robustify.
  882. PR c++/28638
  883. * pt.c (coerce_template_template_parms): Robustify.
  884. PR c++/28639
  885. * error.c (dump_template_parms): Robustify.
  886. PR c++/28640
  887. * pt.c (redeclare_class_template): Robustify.
  888. PR c++/28641
  889. * pt.c (type_unification_real): Robustify.
  890. 2006-08-03 Lee Millward <lee.millward@codesourcery.com>
  891. PR c++/28347
  892. * decl.c (start_decl): Return error_mark_node if a
  893. diagnostic was issed for an invalid typedef initialization.
  894. 2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  895. PR c++/27508
  896. * parser.c (cp_parser_unqualified_id): Check for invalid scopes
  897. when parsing destructor names.
  898. PR c++/28274
  899. * decl.c (duplicate_decls): Call check_default_args here.
  900. (start_preparsed_function): Do not call check_default_args.
  901. * name-lookup.c (pushdecl_maybe_friend): Only call
  902. check_default_args if duplicate_decls got bypassed.
  903. 2006-08-02 Richard Guenther <rguenther@suse.de>
  904. PR c++/28479
  905. Revert
  906. 2006-07-05 Richard Guenther <rguenther@suse.de>
  907. Andrew Pinski <pinskia@gcc.gnu.org>
  908. PR c++/27084
  909. * cp-objcp-common.c (cxx_types_compatible_p): Ignore
  910. top level qualifiers for pointer type comparisons.
  911. 2006-08-02 Mark Mitchell <mark@codesourcery.com>
  912. PR c++/28557
  913. * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
  914. 2006-07-31 Mark Mitchell <mark@codesourcery.com>
  915. PR c++/28523
  916. * tree.c (stabilize_expr): Tweak documentation. Add assertion.
  917. (stabilize_call): Tweak documentation.
  918. (stabilize_init): Only call stabilize_call for calls.
  919. 2006-08-01 Steve Ellcey <sje@cup.hp.com>
  920. PR c++/28432
  921. * decl2.c (check_classfn): Remove early return.
  922. * search.c (lookup_member): Return NULL with bad type.
  923. 2006-08-01 Steve Ellcey <sje@cup.hp.com>
  924. PR c++/28256
  925. * decl.c (check_initializer): Check for 1 initializer on scalar types.
  926. 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
  927. PR debug/23336
  928. * pt.c (tsubst_copy_and_build): Mark used enum types.
  929. * semantics.c (finish_id_expression): Likewise.
  930. 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  931. PR c++/6634
  932. * decl.c (grokdeclarator): Check whether "long" or "short" was
  933. specified for non-integral types.
  934. 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  935. * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
  936. 2006-07-28 Lee Millward <lee.millward@codesourcery.com>
  937. PR c++/27668
  938. PR c++/27962
  939. * pt.c (process_template_parm) Store invalid template
  940. parameters as error_mark_node in the paramater list.
  941. (push_inline_template_parms_recursive): Handle invalid
  942. template parameters.
  943. (comp_template_parms): Likewise.
  944. (check_default_tmpl_arg): Likewise.
  945. (coerce_template_template_parms): Likewise.
  946. (mangle_class_name_for_template): Likewise.
  947. (tsubst_template_parms): Likewise.
  948. * error.c (dump_template_argument_list): Likewise.
  949. 2006-07-28 Kazu Hirata <kazu@codesourcery.com>
  950. * cp-tree.h: Fix a comment typo.
  951. 2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  952. PR c++/27572
  953. * decl.c (grokdeclarator): Return error_mark_node after invalid
  954. typedef.
  955. 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
  956. PR c++/28460
  957. * decl.c (grokvardecl): Use FROB_CONTEXT.
  958. * pt.c (register_specialization): Likewise.
  959. 2006-07-23 Mark Mitchell <mark@codesourcery.com>
  960. PR c++/28025
  961. * cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
  962. * name-lookup.c (unqualified_namespace_lookup): There is no way to
  963. have a hidden name in non-namespace scopes.
  964. * pt.c (tsubst_friend_class): Look for hidden names.
  965. * decl.c (lookup_and_check_tag): Fix typo in comment.
  966. * semantics.c (finish_compound_literal): Fix typo in comment.
  967. 2006-07-21 Jason Merrill <jason@redhat.com>
  968. * decl2.c (determine_visibility): Don't propagate visibility from
  969. type to decl.
  970. (constrain_class_visibility): Don't warn in system headers.
  971. Don't warn about pointer fields.
  972. 2006-07-20 Mike Stump <mrs@apple.com>
  973. * decl2.c (determine_visibility_from_class): Don't use hidden
  974. visibility for explicit instantiations.
  975. 2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  976. PR c++/28250
  977. * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
  978. valid decls. Cleanup.
  979. PR c++/28363
  980. * semantics.c (check_template_template_default_arg): Simplify
  981. error handling.
  982. 2006-07-20 Jason Merrill <jason@redhat.com>
  983. PR c++/28407
  984. * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
  985. const variables with implicit internal linkage.
  986. * tree.c (decl_linkage): Only return lk_external if it's set.
  987. PR c++/28409
  988. * decl2.c (constrain_visibility): Ignore the anonymous namespace
  989. for extern "C" decls.
  990. (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
  991. * decl2.c (constrain_visibility): Remove specified and reason
  992. parameters. Don't touch decls that already have explicit visibility.
  993. (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
  994. template.
  995. (determine_visibility_from_class): Reverse sense of
  996. DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
  997. (constrain_class_visibility): Only complain about member visibility
  998. if the member type is another class. Don't change visibility of the
  999. current class.
  1000. 2006-07-19 Mark Mitchell <mark@codesourcery.com>
  1001. PR c++/28338
  1002. * decl.c (layout_var_decl): Don't call push_local_name here.
  1003. (initialize_artificial_var): Assert artificiality.
  1004. (cp_finish_decl): Call push_local_name here.
  1005. 2006-07-18 Mark Mitchell <mark@codesourcery.com>
  1006. PR c++/28337
  1007. * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
  1008. templates.
  1009. 2006-07-18 Mark Mitchell <mark@codesourcery.com>
  1010. PR c++/28048
  1011. * semantics.c (check_accessibility_of_qualified_id): Robustify.
  1012. PR c++/28235
  1013. * pt.c (tsubst_decl): Handling substitutions into a static data
  1014. member from within the scope of the tempalte itself.
  1015. 2006-07-18 Lee Millward <lee.millward@gmail.com>
  1016. PR c++/28258
  1017. * method.c (locate_copy): Check for non_reference
  1018. returning error_mark_node.
  1019. PR c++/28260
  1020. * decl.c (duplicate_decls): Return error_mark_node
  1021. on ambiguous declaration.
  1022. 2006-07-18 Steve Ellcey <sje@cup.hp.com>
  1023. PR c++/27495
  1024. * search.c (adjust_result_of_qualified_name_lookup): Change
  1025. assert to part of if statement.
  1026. 2006-07-17 Steve Ellcey <sje@cup.hp.com>
  1027. PR c++/28291
  1028. * decl.c (reshape_init_class): Return error_mark_node on error.
  1029. 2006-07-17 Steve Ellcey <sje@cup.hp.com>
  1030. PR c++/28304
  1031. * decl2.c (check_classfn): Return NULL_TREE on error.
  1032. 2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1033. PR c++/28250
  1034. * name-lookup.c (pushdecl_maybe_friend): Return early on
  1035. error_mark_node.
  1036. * except.c (expand_start_catch_block): Use error_mark_node instead
  1037. of NULL_TREE for invalid decls.
  1038. * parser.c (cp_parser_exception_declaration): Return error_mark_node
  1039. on invalid catch parameter. Simplify.
  1040. 2006-07-16 Jakub Jelinek <jakub@redhat.com>
  1041. PR c++/28370
  1042. * decl2.c (note_vague_linkage_var): Removed.
  1043. (finish_static_data_member_decl): Add decl to pending_statics vector
  1044. directly. Do it even for non-public decls.
  1045. 2006-07-15 Lee Millward <lee.millward@gmail.com>
  1046. PR c++/28292
  1047. * decl2.c (acceptable_java_type): Robustify. Use
  1048. proper Boolean return type instead of return 1.
  1049. (check_java_method): Don't issue error about
  1050. type not being an acceptable Java parameter if
  1051. it's error_mark_node.
  1052. PR c++/28269
  1053. * parser.c (cp_parser_elaborated_type_specifier):
  1054. Return early if an invalid type was detected.
  1055. 2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1056. PR c++/28249
  1057. * parser.c (cp_parser_check_decl_spec): New function.
  1058. (cp_parser_decl_specifier_seq): Factor out check for repeated
  1059. decl-specifiers into cp_parser_check_decl_spec. Use it.
  1060. (cp_parser_type_specifier_seq): Use it.
  1061. PR c++/28294
  1062. * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
  1063. only.
  1064. PR c++/28387
  1065. * decl2.c (cplus_decl_attributes): Check for invalid decls.
  1066. 2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1067. PR c++/28343
  1068. * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
  1069. * decl2.c (grokfield): Likewise.
  1070. 2006-07-12 Geoffrey Keating <geoffk@apple.com>
  1071. * decl2.c (determine_visibility): Don't change visibility of
  1072. function locals because of -fvisibility-inlines-hidden.
  1073. 2006-07-12 Jason Merrill <jason@redhat.com>
  1074. PR c++/28217
  1075. * semantics.c (note_decl_for_pch): Don't premangle templates.
  1076. 2006-07-12 Martin Michlmayr <tbm@cyrius.com>
  1077. * typeck.c (string_conv_p): Remove spurious quotation mark in
  1078. warning.
  1079. 2006-07-07 Lee Millward <lee.millward@gmail.com>
  1080. Andrew Pinski <pinskia@gmail.com>
  1081. PR c++/27820
  1082. * decl.c (define_label): Return error_mark_node on error.
  1083. * semantics.c (finish_label_stmt): Don't call
  1084. add_stmt for invalid labels.
  1085. 2006-07-06 Jason Merrill <jason@redhat.com>
  1086. PR c++/28279
  1087. * decl2.c (finish_static_data_member_decl): Don't assert
  1088. TREE_PUBLIC.
  1089. 2006-07-05 Jason Merrill <jason@redhat.com>
  1090. PR c++/13983
  1091. PR c++/17519
  1092. * class.c (check_field_decls): Check TYPE_PACKED after
  1093. stripping array types.
  1094. (finish_struct_bits): Don't copy TYPE_SIZE here.
  1095. PR c++/18681
  1096. * friend.c (is_friend): Fix DR 45 implementation.
  1097. 2006-07-05 Richard Guenther <rguenther@suse.de>
  1098. Andrew Pinski <pinskia@gcc.gnu.org>
  1099. PR c++/27084
  1100. * cp-objcp-common.c (cxx_types_compatible_p): Ignore
  1101. top level qualifiers for pointer type comparisons.
  1102. 2006-07-01 Jason Merrill <jason@redhat.com>
  1103. PR c++/28215
  1104. * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
  1105. DECL_TEMPLATE_INFO.
  1106. 2006-06-30 Jason Merrill <jason@redhat.com>
  1107. PR c++/26577
  1108. * call.c (build_new_method_call): Force evaluation of the
  1109. instance pointer, not the object.
  1110. 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
  1111. * decl2.c: Fix a comment typo.
  1112. 2006-06-30 Jason Merrill <jason@redhat.com>
  1113. PR c++/18698
  1114. * decl2.c (grokfield): Only try to treat the decl as an access
  1115. declaration if the scope is a class.
  1116. 2006-06-29 Jason Merrill <jason@redhat.com>
  1117. PR c++/26905
  1118. PR c++/26612
  1119. PR c++/27000
  1120. PR c++/26984
  1121. PR c++/19134
  1122. * decl2.c (determine_visibility): Overhaul.
  1123. (determine_visibility_from_class): Likewise.
  1124. (min_vis_r, type_visibility, constrain_visibility): New fns.
  1125. (constrain_visibility_for_template): Likewise.
  1126. (constrain_class_visibility): Likewise.
  1127. * decl.c (cp_finish_decl): Call determine_visibility for function
  1128. decls, too.
  1129. * name-lookup.c (pushtag): Call determine_visibility.
  1130. * decl.c (duplicate_decls): Don't copy visibility from template to
  1131. specialization.
  1132. * pt.c (check_explicit_specialization): Likewise.
  1133. (lookup_template_class, tsubst_decl): Call determine_visibility.
  1134. * class.c (finish_struct_1): Call constrain_class_visibility.
  1135. PR c++/26905
  1136. PR c++/21675
  1137. PR c++/17470
  1138. * parser.c (cp_parser_explicit_instantiation): Pass the attributes
  1139. to grokdeclarator.
  1140. (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
  1141. (cp_parser_enum_specifier): Likewise.
  1142. (cp_parser_elaborated_type_specifier): Apply attributes if this
  1143. declares only the class.
  1144. (cp_parser_class_specifier): Apply leading attributes immediately.
  1145. * semantics.c (begin_class_definition): Add attributes parameter,
  1146. apply them to the type.
  1147. PR c++/21581
  1148. PR c++/25915
  1149. * tree.c (decl_anon_ns_mem_p): New function.
  1150. * cp-tree.h: Declare it.
  1151. * decl2.c (determine_visibility): Make anonymous namespace
  1152. members static.
  1153. (min_vis_r, constrain_visibility): Likewise.
  1154. * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
  1155. pseudo-types.
  1156. * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
  1157. global_namespace.
  1158. * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
  1159. on anonymous namespaces.
  1160. 2006-06-28 Jason Merrill <jason@redhat.com>
  1161. PR c++/27424
  1162. * pt.c (convert_template_argument): Pass all template arguments
  1163. on to coerce_template_template_parms.
  1164. 2006-06-25 Lee Millward <lee.millward@gmail.com>
  1165. Mark Mitchell <mark@codesuorcery.com>
  1166. PR c++/28054
  1167. * decl2.c (grokbitfied): Remove check for grokdeclarator
  1168. returning NULL_TREE, instead check for error_mark_node
  1169. to indicate failure.
  1170. * decl.c (grokdeclarator): Adjust block comment.
  1171. 2006-06-25 Lee Millward <lee.millward@gmail.com>
  1172. PR c++/28051
  1173. * mangle.c (mangle_conv_op_name_for_type): Check for
  1174. invalid types.
  1175. * name-lookup.c (push_class_level_binding): Robustify.
  1176. (do_class_using_decl): Return early if name is error_mark_node.
  1177. 2006-06-23 Steve Ellcey <sje@cup.hp.com>
  1178. PR c++/28114
  1179. * name-lookup.c (pushtag): Return if we have error_mark_node.
  1180. 2006-06-23 Steve Ellcey <sje@cup.hp.com>
  1181. PR c++/27019
  1182. * typeck2.c (process_init_constructor_array): Set ce->value on errors.
  1183. 2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1184. PR c++/28112
  1185. * parser.c (cp_parser_attribute_list): Skip attributes with invalid
  1186. arguments. Fix comment.
  1187. PR c++/11468
  1188. * init.c (build_new_1): Handle error_mark_nodes returned by
  1189. build_java_class_ref.
  1190. (build_java_class_ref): Do not abort compilation, but return
  1191. error_mark_node. Improve error message. Fix indentation.
  1192. 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
  1193. PR target/27789
  1194. * decl.c (start_decl): Check that dllimports are not initialized.
  1195. 2006-06-22 Lee Millward <lee.millward@gmail.com>
  1196. PR c++/27805
  1197. * typeck2.c (build_m_component_ref): Use error_operand_p.
  1198. PR c++/27821
  1199. * decl.c (grokdeclarator): Return error_mark_node on
  1200. invalid uses of the scope resolution operator.
  1201. 2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1202. PR c++/28111
  1203. * pt.c (determine_specialization): Check for invalid decls.
  1204. PR c++/28110
  1205. * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
  1206. parameters.
  1207. PR c++/28109
  1208. * rtti.c (get_tinfo_decl_dynamic): Robustify.
  1209. 2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1210. PR c++/28052
  1211. * init.c (push_base_cleanups): Skip members with invalid types.
  1212. * typeck.c (build_class_member_access_expr): Robustify.
  1213. 2006-06-19 Mark Mitchell <mark@codesourcery.com>
  1214. * pt.c (instantiate_template): Fix typo in comment.
  1215. 2006-06-19 Richard Guenther <rguenther@suse.de>
  1216. * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
  1217. power-of-two token vector size.
  1218. 2006-06-16 Mark Mitchell <mark@codesourcery.com>
  1219. PR c++/28016
  1220. * decl.c (cp_finsh_decl): Do not emit uninstantiated static data
  1221. members.
  1222. PR c++/27979
  1223. * call.c (standard_conversion): Strip cv-qualifiers from bitfield
  1224. types.
  1225. PR c++/27884
  1226. * decl.c (have_extern_spec): Remove.
  1227. (start_decl): Do not check have_extern_spec.
  1228. (start_function): Likewise.
  1229. * cp-tree.h (have_extern_spec): Remove.
  1230. * parser.c (cp_parser_linkage_specification): Don't set
  1231. have_extern_spec.
  1232. (cp_parser_init_declarator): Likewise.
  1233. (cp_parser_parameter_declaration): Do not treat parameters as
  1234. within the scope of an unbraced linkage specification.
  1235. 2006-06-15 Mark Mitchell <mark@codesourcery.com>
  1236. PR c++/27689
  1237. * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
  1238. macro.
  1239. * pt.c (unify): Use it.
  1240. PR c++/27666
  1241. * call.c (build_conditional_expr): Robustify.
  1242. PR c++/27640
  1243. * pt.c (instantiate_template): Set processing_template_decl to
  1244. zero while performing substitutions.
  1245. 2006-06-14 Mark Mitchell <mark@codesourcery.com>
  1246. PR c++/27665
  1247. * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
  1248. identify destructors.
  1249. (cp_parser_nested_name_specifier_opt): Remove invalid
  1250. optimization.
  1251. (cp_parser_template_id): Refine heuristic for determining whether
  1252. we are entering a scope.
  1253. PR c++/27648
  1254. * parser.c (cp_parser_declarator): Robustify.
  1255. PR c++/26559
  1256. * pt.c (tsubst_expr): Use finish_omp_atomic.
  1257. (value_dependent_expression_p): All CALL_EXPRs are dependent.
  1258. * semantics.c (finish_omp_atomic): Rework to use standard
  1259. paradigms for handling non-dependent expressions.
  1260. 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
  1261. * typeck.c (build_modify_expr): Tidy diagnostic message.
  1262. 2006-06-14 Mark Mitchell <mark@codesourcery.com>
  1263. PR c++/28018
  1264. * typeck.c (build_modify_expr): Disallow array assignment.
  1265. 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
  1266. * cp-tree.def: Fix typo.
  1267. 2006-06-13 Mark Mitchell <mark@codesourcery.com>
  1268. PR c++/27227
  1269. * decl.c (decls_match): Allow an extern "C" variable declarations
  1270. from different namespaces to match.
  1271. (duplicate_decls): Disallow redeclaring a variable with a
  1272. different linkage specification.
  1273. 2006-06-13 Jakub Jelinek <jakub@redhat.com>
  1274. PR middle-end/27793
  1275. * cp-tree.h (cxx_int_tree_map): New struct.
  1276. (struct language_function): Add extern_decl_map field.
  1277. * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
  1278. to cp_function_chain->extern_decl_map hash table instead of
  1279. copying over DECL_UID.
  1280. * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
  1281. functions.
  1282. (cp_genericize_r): Remap DECL_EXTERN local decls using
  1283. cp_function_chain->extern_decl_map hash table.
  1284. * decl.c (finish_function): Clear extern_decl_map.
  1285. 2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1286. PR c++/27601
  1287. * semantics.c (finish_offsetof): Handle pseudo-destructors.
  1288. PR c++/27933
  1289. * name-lookup.c (lookup_qualified_name): Always return error_mark_node
  1290. if lookup fails.
  1291. PR c++/27951
  1292. * decl2.c (finish_anon_union): Return early if build_anon_union_vars
  1293. fails.
  1294. 2006-06-12 Roger Sayle <roger@eyesopen.com>
  1295. PR c++/21210
  1296. * typeck2.c (build_functional_cast): Use cp_convert to construct
  1297. non-aggregate initializers instead of the user-level build_c_cast.
  1298. 2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1299. PR c++/27601
  1300. * cp-tree.h (finish_offsetof): Add prototype.
  1301. * semantics.c (finish_offsetof): New function.
  1302. * parser.c (cp_parser_builtin_offsetof): Call it instead of
  1303. fold_offsetof.
  1304. * pt.c (tsubst_copy_and_build): Likewise.
  1305. 2006-06-06 Mark Mitchell <mark@codesourcery.com>
  1306. PR c++/27177
  1307. * call.c (standard_conversion): Require that the derived type be
  1308. complete when performing a derived-to-base conversion.
  1309. 2006-06-04 Mark Mitchell <mark@codesourcery.com>
  1310. PR c++/27819
  1311. * decl.c (cp_finish_decl): Process initializers for static data
  1312. members with non-dependent initializers, even in templates.
  1313. PR c++/27722
  1314. * decl.c (maybe_deduce_size_from_array_init): If the declaration
  1315. is erroneous, give it an erroneous type.
  1316. (layout_var_decl): If the type is erroneous, give up.
  1317. (check_initializer): Likewise.
  1318. PR c++/27807
  1319. * cp-tree.h (TYPE_OBJ_P): New macro.
  1320. (TYPE_PTROB_P): Use it.
  1321. (TYPE_REF_OBJ_P): Likewise.
  1322. * semantics.c (finish_compound_literal): Do not permit compound
  1323. literals of non-object types.
  1324. PR c++/27806
  1325. * typeck.c (original_type): Robustify.
  1326. 2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1327. PR c++/27804
  1328. * init.c (constant_value_1): Return decl instead of error_mark_node
  1329. for invalid initializers.
  1330. 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
  1331. PR c++/27592
  1332. * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
  1333. on operand of the COND_EXPR for the null pointer check.
  1334. 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
  1335. PR c++/26740
  1336. * typeck.c (build_unary_op): Mark the function as being used.
  1337. 2006-06-01 Alexandre Oliva <aoliva@redhat.com>
  1338. PR c++/26660
  1339. * parser.c (cp_parser_initial_pragma): Read one more token for
  1340. caller after reading PCH file in.
  1341. 2006-05-31 Mark Mitchell <mark@codesourcery.com>
  1342. PR c++/27801
  1343. * call.c (perform_implicit_conversion): Do not actually perform
  1344. conversions in templates.
  1345. PR c++/26496
  1346. * call.c (resolve_args): Check for invalid uses of bound
  1347. non-static member functions.
  1348. * init.c (build_offset_ref): Return error_mark_node for errors.
  1349. PR c++/27385
  1350. * decl.c (reshape_init): Robustify.
  1351. (reshape_init_array_1): Likewise.
  1352. 2006-05-30 Mark Mitchell <mark@codesourcery.com>
  1353. PR c++/27808
  1354. * parser.c (cp_parser_decl_specifier_seq): Issue errors about
  1355. "friend" specifiers that do not appear in class scopes.
  1356. PR c++/27803
  1357. * class.c (check_bitfield_decl): Ensure that all bitfields have
  1358. integral type.
  1359. 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
  1360. * pt.c (convert_nontype_argument): Fix a typo in an error
  1361. message.
  1362. 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
  1363. * decl.c, decl2.c, parser.c: Fix comment typos. Follow
  1364. spelling conventions.
  1365. 2006-05-24 Mark Mitchell <mark@codesourcery.com>
  1366. PR c++/20103
  1367. * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
  1368. error_mark_node to indicate an initialization is OK.
  1369. (start_decl): Likewise. Adjust call to start_decl_1.
  1370. (start_decl_1): Add initialized parameter. Simplify.
  1371. * except.c (initialize_handler_parm): Adjust call to
  1372. setart_decl_1.
  1373. (expand_start_catch_block): Let cp_finish_decl initialize catch
  1374. parameters.
  1375. * cp-tree.h (start_decl_1): Adjust prototype.
  1376. * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
  1377. (instantiate_decl): Let cp_finish_decl handle initialization.
  1378. * semantics.c (finish_compound_literal): Create a temporary
  1379. variable for the literal.
  1380. * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
  1381. cases.
  1382. * decl2.c (finish_static_data_member_decl): Don't set
  1383. DECL_INITIAL.
  1384. (grokfield): Do not try to initialize functions.
  1385. 2006-05-23 Mark Mitchell <mark@codesourcery.com>
  1386. PR c++/20173
  1387. * pt.c (determine_specialization): Disallow partial
  1388. specializations of templates.
  1389. 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1390. PR c++/27716
  1391. * typeck.c (build_modify_expr): Test arguments for error_operand_p.
  1392. * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
  1393. 2006-05-21 Mark Mitchell <mark@codesourcery.com>
  1394. PR c++/27210
  1395. * cp-tree.h (cp_save_expr): New function.
  1396. * init.c (build_new): Correct logic for zero-element array
  1397. warning. Use cp_save_expr.
  1398. * tree.c (cp_save_expr): New function.
  1399. 2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1400. PR c++/27398
  1401. * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
  1402. or void_type_node.
  1403. 2006-05-19 Mike Stump <mrs@apple.com>
  1404. * typeck.c (default_conversion): Remove static.
  1405. 2006-05-19 Mark Mitchell <mark@codesourcery.com>
  1406. PR c++/26433
  1407. * cp-tree.h (begin_function_try_block): Change prototype.
  1408. (finish_function_handler_sequence): Likewise.
  1409. * parser.c (cp_parser_function_try_block): Adjust calls.
  1410. * pt.c (tsubst_expr): Adjust calls.
  1411. * semantics.c (begin_function_try_block): Create an artificial
  1412. outer scope.
  1413. (finish_function_handler_sequence): Close it.
  1414. 2006-05-18 Mark Mitchell <mark@codesourcery.com>
  1415. PR c++/27471
  1416. PR c++/27506
  1417. * typeck.c (decay_conversion): Convert bitfields to their declared
  1418. types here. Improve documentation. Avoid use of cp_convert.
  1419. (default_conversion): Make it static. Perform integral promotions
  1420. before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
  1421. conversions.
  1422. * init.c (build_init): Remove.
  1423. (expand_default_init): Do not call rvalue.
  1424. * call.c (null_ptr_cst_p): Robustify.
  1425. (build_conditional_expr): Tidy.
  1426. * except.c (build_throw): Do not perform lvalue-to-rvalue
  1427. conversion on operand before initializing temporary.
  1428. * tree.c (convert.h): Include it.
  1429. (convert_bitfield_to_declared_type): Use convert_to_integer, not
  1430. cp_convert.
  1431. (rvalue): Don't convert bitfields to their declared type here.
  1432. * cp-tree.h (build_init): Remove.
  1433. (default_conversion): Likewise.
  1434. * typeck2.c (build_m_component_ref): Do not perform
  1435. lvalue-to-rvalue, function-to-pointer, or array-to-pointer
  1436. conversions here. Correct error message.
  1437. 2006-05-17 Mark Mitchell <mark@codesourcery.com>
  1438. PR c++/26122
  1439. * decl2.c (check_member_template): Remove checks for virtual
  1440. functions.
  1441. * parser.c (cp_parser_function_specifier_opt): Complain about
  1442. virtual templates.
  1443. (cp_parser_pure_specifier): Likewise.
  1444. PR c++/26068
  1445. * parser.c (cp_parser_set_storage_class): Check for
  1446. invalid uses of storage classes on unbraced linkage
  1447. specifications.
  1448. (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
  1449. to cp_parser_set_storage_class.
  1450. 2006-05-17 Jakub Jelinek <jakub@redhat.com>
  1451. PR c++/27491
  1452. * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
  1453. on CONSTRUCTORs.
  1454. PR middle-end/27415
  1455. * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
  1456. on combined parallel workshare constructs.
  1457. * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
  1458. 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
  1459. PR driver/26885
  1460. * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
  1461. 2006-05-15 Mark Mitchell <mark@codesourcery.com>
  1462. PR c++/27339
  1463. * cp-tree.h (perform_access_checks): New function.
  1464. * semantics.c (perform_access_checks): New function.
  1465. (perform_deferred_access_checks): Use it.
  1466. * parser.c (cp_parser_simple_declaration): Adjust call to
  1467. cp_parser_init_declarator.
  1468. (cp_parser_type_parameter): Do not defer checks in default
  1469. arguments.
  1470. (cp_parser_explicit_specialization): Adjust call to
  1471. cp_parser_single_declaration.
  1472. (cp_parser_init_declarator): Perform template-parameter access
  1473. checks.
  1474. (cp_parser_parameter_declaration): Do not defer checks for
  1475. template parameter default arguments.
  1476. (cp_parser_template_declaration_after_export): Gather access
  1477. checks for template parameters, and pass them to
  1478. cp_parser_single_declaration.
  1479. (cp_parser_template_parameter_access_checks): New function.
  1480. (cp_parser_single_declaration): Add checks parameter.
  1481. PR c++/27505
  1482. * call.c (convert_like_real): Convert bitfields to their declared
  1483. types when forming an rvalue.
  1484. * tree.c (convert_bitfield_to_declared_type): New function.
  1485. (rvalue): Use it.
  1486. * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
  1487. 2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1488. PR c++/27582
  1489. * pt.c (any_dependent_template_arguments_p): Return early on invalid
  1490. argument list.
  1491. PR c++/27581
  1492. * search.c (adjust_result_of_qualified_name_lookup): Skip on
  1493. invalid context_class.
  1494. PR c++/27315
  1495. * pt.c (do_decl_instantiation): Return early on invalid decl.
  1496. PR c++/27559
  1497. * pt.c (push_template_decl_real): Return error_mark_node instead
  1498. of broken decl.
  1499. PR c++/27496
  1500. * pt.c (tsubst_friend_class): Return early on invalid friend
  1501. declarations.
  1502. 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
  1503. * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
  1504. (cp/decl2.o): Likewise.
  1505. (cp/typeck.o): Likewise.
  1506. (cp/cvt.o): Likewise.
  1507. (cp/parser.o): Likewise.
  1508. (cp/call.o): Replace target.h with $(TARGET_H).
  1509. 2006-05-14 Alexandre Oliva <aoliva@redhat.com>
  1510. * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
  1511. COMPONENT_REF alone.
  1512. 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1513. PR c++/27547
  1514. * decl.c (copy_fn_p): Return early on non-member functions.
  1515. 2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1516. PR c++/27447
  1517. * decl2.c (build_memfn_type): Skip invalid functions and class types.
  1518. 2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1519. PR c++/27427
  1520. * pt.c (convert_nontype_argument): Return early on invalid arguments.
  1521. * pt.c (process_template_parm): Remove superfluous temporary.
  1522. PR c++/27430
  1523. * pt.c (process_template_parm): Handle erroneous non-type parameters.
  1524. PR c++/27423
  1525. * typeck.c (convert_for_initialization): Skip erroneous types.
  1526. PR c++/27422
  1527. * typeck.c (convert_arguments): Return early on args with
  1528. invalid types.
  1529. 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
  1530. PR/21391
  1531. * typeck.c (build_static_cast_1): Save casted types in used types
  1532. hash table.
  1533. (build_reinterpret_cast_1): Same.
  1534. * rtti.c (build_dynamic_cast_1): Same.
  1535. 2006-05-04 Jakub Jelinek <jakub@redhat.com>
  1536. PR c++/27359
  1537. * parser.c (cp_parser_omp_for_loop): Only call
  1538. cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
  1539. called.
  1540. 2006-05-02 Mark Mitchell <mark@codesourcery.com>
  1541. PR c++/27102
  1542. * decl.c (grokdeclarator): Robustify checks for defining members
  1543. of incomplete types.
  1544. PR c++/27309
  1545. * class.c (add_method): Call grok_special_member_properties.
  1546. * decl.c (grokdeclarator): Don't call it here.
  1547. (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
  1548. assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
  1549. constructor.
  1550. (start_method): Don't call grok_special_member_properties.
  1551. * method.c (implicitly_declare_fn): Likewise.
  1552. * pt.c (instantiate_class_template): Likewise.
  1553. * decl2.c (grokfield): Likewise.
  1554. 2006-05-02 Jakub Jelinek <jakub@redhat.com>
  1555. PR middle-end/27337
  1556. * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
  1557. * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
  1558. * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
  1559. 2006-04-30 Mark Mitchell <mark@codesourcery.com>
  1560. PR c++/27094
  1561. * pt.c (tsubst_default_argument): Increment function_depth around
  1562. call to tsubst_expr.
  1563. * parser.c (cp_parser_parameter_declaration): Likewise.
  1564. * decl2.c (mark_used): Tidy.
  1565. 2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1566. PR c++/27278
  1567. * decl.c (grok_op_properties): Skip operators with invalid args
  1568. when checking for class-type or enum-type args.
  1569. 2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1570. PR c++/27279
  1571. * decl.c (copy_fn_p): Skip functions with invalid first arg.
  1572. 2006-04-27 Mark Mitchell <mark@codesourcery.com>
  1573. PR c++/27292
  1574. * tree.c (rvalue): Convert bitfields to their declared types.
  1575. PR c++/27102
  1576. * typeck2.c (cxx_incomplete_type_diagnostic): Handle
  1577. TYPENAME_TYPE.
  1578. 2006-04-24 Mark Mitchell <mark@codesourcery.com>
  1579. PR c++/27292
  1580. * typeck.c (decay_conversion): Don't adjust bitfield types.
  1581. (perform_integral_promotions): Treat bitfield enums as enums, not
  1582. as short integer types.
  1583. * tree.c (rvalue): Convert bitfields to their correct types.
  1584. 2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1585. PR c++/19963
  1586. * class.c (layout_class_type): Skip fields with invalid types.
  1587. 2006-04-23 Mark Mitchell <mark@codesourcery.com>
  1588. PR c++/26912
  1589. * cp-tree.h (build_this_parm): Declare.
  1590. (grok_method_quals): Remove.
  1591. (build_memfn_type): Declare.
  1592. (build_artificial_parm): Declare.
  1593. (do_friend): Remove quals parameter.
  1594. * decl.c (build_this_parm): New function.
  1595. (grokfndecl): Use it. Do not pass quals to grokclassfn.
  1596. (grokdeclarator): Rename quals to memfn_quals. Avoid allocating
  1597. unnecessary TYPE_DECLs. Correct qualification of member function
  1598. types. Tidy.
  1599. * method.c (implicitly_declare_fn): Use build_this_parm.
  1600. * friend.c (do_friend): Remove quals parameter.
  1601. * decl2.c (grok_method_quals): Remove.
  1602. (build_memfn_type): New function.
  1603. (build_artificial_parm): Give it external linkage.
  1604. (grokclassfn): Remove quals parameter. Do not build "this"
  1605. PARM_DECL here.
  1606. PR c++/26534
  1607. * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
  1608. * typeck.c (is_bitfield_expr_with_lowered_type): New function.
  1609. (decay_conversion): Convert bitfield expressions to the correct
  1610. type.
  1611. (build_modify_expr): Remove spurious conversions.
  1612. * class.c (layout_class_type): Modify the type of bitfields to
  1613. indicate a limited range.
  1614. * call.c (standard_conversion): Adjust the type of bitfield
  1615. expressions used in an rvalue context.
  1616. (build_conditional_expr): Likewise.
  1617. 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
  1618. * decl.c: Fix comment typos.
  1619. 2006-04-21 Eric Christopher <echristo@apple.com>
  1620. * decl.c: Fix typo in function name.
  1621. 2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1622. PR c++/26558
  1623. * parser.c (cp_parser_class_name): Check for invalid typenames.
  1624. Rearrange code.
  1625. PR c++/26739
  1626. * pt.c (tsubst_friend_function): Return early if
  1627. pushdecl_namespace_level fails.
  1628. PR c++/26036
  1629. * typeck.c (convert_arguments): Return error_mark_node instead of
  1630. error_mark_list.
  1631. * cp-tree.h (error_mark_list): Remove declaration.
  1632. * decl.c (error_mark_list): Remove definition.
  1633. (cxx_init_decl_processing): Do not initialize error_mark_list.
  1634. PR c++/10385
  1635. * rtti.c (build_dynamic_cast_1): Check for invalid conversions
  1636. before calling convert_to_reference.
  1637. * cvt.c (convert_to_reference): Assert that reftype is a
  1638. REFERENCE_TYPE.
  1639. 2006-04-19 Mark Mitchell <mark@codesourcery.com>
  1640. PR c++/27102
  1641. * class.c (currently_open_class): Tidy.
  1642. * decl.c (grokdeclarator): If we encounter an erroneous
  1643. declarator, assume that we have already issued an error message
  1644. and return. Return error_mark_node instead of NULL_TREE in more
  1645. places. Issue errors about function definitions that do not have
  1646. a function declarator. Check for complete types for all function
  1647. definitions.
  1648. * cp-tree.h (cp_error_declarator): Remove.
  1649. (currently_open_class): Change return type.
  1650. * parser.c (cp_parser_id_expression): Add optional_p parameter.
  1651. (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
  1652. (cp_parser_id_expression): Likewise.
  1653. (cp_parser_unqualified_id): If the name is optional, return
  1654. NULL_TREE.
  1655. (cp_parser_postfix_dot_deref_expression): Adjust calls.
  1656. (cp_parser_type_parameter): Likewise.
  1657. (cp_parser_unqualified_id): Likewise.
  1658. (cp_parser_direct_declarator): Likewise.
  1659. (cp_parser_declarator_id): Add optional_p parameter.
  1660. (cp_parser_function_definition_from_specifiers_and_declarator):
  1661. Assume that start_function indicates failure only if it has issued
  1662. an error.
  1663. (cp_parser_omp_var_list_no_open): Adjust calls.
  1664. 2006-04-17 Janis Johnson <janis187@us.ibm.com>
  1665. PR c++/26114, c++/26115
  1666. * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
  1667. * class.c (check_field_decls): Ditto.
  1668. 2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1669. * init.c (build_offset_ref): Remove superfluous temporary.
  1670. 2006-04-16 Mark Mitchell <mark@codesourcery.com>
  1671. PR c++/26365
  1672. * typeck.c (finish_class_member_access_expr): Robustify
  1673. 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
  1674. * Make-lang.in (cp/pt.o): Depend on vecprim.h.
  1675. * pt.c: Include vecprim.h.
  1676. (inline_parm_levels): Change the type to VEC(int,heap) *.
  1677. (inline_parm_levels_used): Remove.
  1678. (maybe_begin_member_template_processing,
  1679. maybe_end_member_template_processing): Use VEC instead of
  1680. VARRAY.
  1681. * cp/call.c: Fix comment typos.
  1682. 2006-04-12 Mark Mitchell <mark@codesourcery.com>
  1683. * parser.c (cp_parser_init_declarator): Initialize local variables
  1684. aggressively.
  1685. 2006-04-12 Roger Sayle <roger@eyesopen.com>
  1686. * parser.c (cp_parser_init_declarator): Initialise
  1687. is_parenthesized_init to false to avoid compiler warning.
  1688. 2006-04-11 Mark Mitchell <mark@codesourcery.com>
  1689. * cp-tree.h (build_operator_new_call): Adjust prototype.
  1690. (build_new_method_call): Likewise.
  1691. (build_op_delete_call): Likewise.
  1692. * init.c (build_raw_new_expr): New function.
  1693. (build_new_1): Pass information as parameters, rather than
  1694. bundling it into a NEW_EXPR.
  1695. (build_new): Adjust accordingly.
  1696. (build_vec_delete_1): Adjust for changes to build_op_delete_call.
  1697. (build_delete): Likewise.
  1698. * decl.c (finish_destructor_body): Likewise.
  1699. * call.c (build_operator_new_call): Return the allocation function
  1700. used.
  1701. (build_op_delete_call): Take allocation function as parameter.
  1702. (build_special_member_call): Adjust call to build_new_method_call.
  1703. (build_new_method_call): Return function called.
  1704. * pt.c (tsubst_copy_and_build): Adjust call to
  1705. build_new_method_call.
  1706. * semantics.c (finish_call_expr): Likewise.
  1707. * parser.c (cp_parser_postfix_expression): Likewise.
  1708. * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
  1709. "incomplete", not "undefined", types.
  1710. PR c++/26295
  1711. * decl.c (grokdeclarator): Remove namespace-handling code for
  1712. pointers-to-members.
  1713. * parser.c (cp_parser_ptr_operator): Check for qualified names
  1714. using namespaces.
  1715. PR c++/26122
  1716. * parser.c (cp_parser_init_declarator): Adjust logic for deciding
  1717. whether or not to look for a pure-specifier.
  1718. (cp_parser_member_declaration): Likewise.
  1719. 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
  1720. * decl2.c, pt.c, semantics.c: Fix comment typos.
  1721. 2006-04-06 Roger Sayle <roger@eyesopen.com>
  1722. * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
  1723. 2006-04-05 Jason Merrill <jason@redhat.com>
  1724. * name-lookup.c (push_namespace_with_attribs): Temporarily disable
  1725. default hidden visibility for anonymous namespace.
  1726. 2006-03-29 Roger Sayle <roger@eyesopen.com>
  1727. PR c++/22494
  1728. * init.c (build_vec_delete_1): Convert BASE pointer's type to
  1729. the base pointer type to avoid a type mismatch in the EQ_EXPR.
  1730. 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
  1731. * search.c (maybe_suppress_debug_info): If
  1732. flag_emit_class_debug_always then don't suppress.
  1733. 2006-03-22 Jason Merrill <jason@redhat.com>
  1734. * name-lookup.c (push_namespace_with_attribs): Only apply hidden
  1735. visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
  1736. 2006-03-21 Jakub Jelinek <jakub@redhat.com>
  1737. PR c++/26691
  1738. * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
  1739. 2006-03-21 Jason Merrill <jason@redhat.com>
  1740. PR c++/21581
  1741. * parser.c (cp_parser_declaration): Support attributes on
  1742. anonymous namespaces.
  1743. * name-lookup.c (push_namespace_with_attribs): Anonymous
  1744. namespaces default to hidden visibility.
  1745. 2006-03-20 Jason Merrill <jason@redhat.com>
  1746. PR c++/21764, c++/19238
  1747. * decl.c (cp_finish_decl): Call determine_visibility later.
  1748. (start_preparsed_function): Likewise.
  1749. * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
  1750. (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
  1751. * name-lookup.h (struct cp_binding_level): Add has_visibility
  1752. bitfield.
  1753. * name-lookup.c: Include c-pragma.h.
  1754. (push_namespace_with_attribs): Split out from push_namespace.
  1755. Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
  1756. (leave_scope): Pop visibility if appropriate.
  1757. * decl2.c (determine_visibility_from_class): Split out from...
  1758. (determine_visibility): ...here. Handle function scope and
  1759. nested classes.
  1760. (import_export_decl): Move visibility handling to
  1761. determine_visibility_from_class.
  1762. * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
  1763. attributes on namespace declarations.
  1764. 2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  1765. PR c++/6634
  1766. * decl.c (grokdeclarator): Do not accept long long double.
  1767. Reorganize checks for invalid (combinations of) type modifiers.
  1768. Quote modifiers in messages.
  1769. 2006-03-09 Jason Merrill <jason@redhat.com>
  1770. PR c++/16387, c++/16389
  1771. * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
  1772. (cxx_sizeof_or_alignof_expr): Split out from here.
  1773. 2006-03-09 Diego Novillo <dnovillo@redhat.com>
  1774. Merge from gomp-20050608-branch
  1775. 2006-02-02 Diego Novillo <dnovillo@redhat.com>
  1776. * decl.c (pop_labels_1): Use appropriate pointer casting.
  1777. (poplevel_named_label_1): Likewise.
  1778. (named_label_entry_hash): Likewise.
  1779. (named_label_entry_eq): Likewise.
  1780. (check_goto): Likewise.
  1781. (define_label): Likewise.
  1782. 2006-01-26 Diego Novillo <dnovillo@redhat.com>
  1783. * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
  1784. of TREE_BLOCK.
  1785. * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
  1786. instead of TREE_CODE/TREE_OPERAND.
  1787. * semantics.c: Likewise.
  1788. * parser.c: Likewise.
  1789. 2005-11-10 Diego Novillo <dnovillo@redhat.com>
  1790. * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
  1791. target does not support TLS.
  1792. 2005-11-09 Jakub Jelinek <jakub@redhat.com>
  1793. * decl.c (redeclaration_error_message): Don't error about
  1794. DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
  1795. (olddecl).
  1796. 2005-11-08 Jakub Jelinek <jakub@redhat.com>
  1797. PR c++/24735
  1798. * semantics.c (finish_omp_barrier, finish_omp_flush): New
  1799. functions.
  1800. * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
  1801. (cp_parser_omp_flush): Call finish_omp_flush.
  1802. * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
  1803. prototypes.
  1804. PR c++/24734
  1805. * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
  1806. 2005-11-03 Jakub Jelinek <jakub@redhat.com>
  1807. * semantics.c (finish_omp_threadprivate): Error on class-scope
  1808. variables.
  1809. 2005-11-02 Jakub Jelinek <jakub@redhat.com>
  1810. * parser.c (cp_parser_omp_all_clauses): If some clause
  1811. type is not allowed, don't remove just one of the
  1812. clauses, but all clauses added in that loop round.
  1813. * semantics.c (finish_omp_clauses): Fix function
  1814. comment. Don't handle non-const or mutable specially,
  1815. as const and not mutable is predetermined shared and
  1816. that leads to double error. Don't ICE if copyin var is
  1817. PARM_DECL.
  1818. PR c++/24613
  1819. * parser.c (cp_parser_pragma): Diagnose
  1820. PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
  1821. construct.
  1822. * semantics.c (finish_omp_threadprivate): Error if V
  1823. is automatic variable or has incomplete type.
  1824. 2005-11-01 Diego Novillo <dnovillo@redhat.com>
  1825. * parser.c (cp_parser_omp_all_clauses): Use
  1826. OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
  1827. 2005-11-01 Diego Novillo <dnovillo@redhat.com>
  1828. * parser.c (cp_parser_omp_all_clauses): When emitting an
  1829. error message, remove the invalid clause from the list.
  1830. 2005-10-31 Diego Novillo <dnovillo@redhat.com>
  1831. * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
  1832. combined parallel+workshare directives.
  1833. 2005-10-31 Richard Henderson <rth@redhat.com>
  1834. * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
  1835. Use cxx_omp_clause_dtor.
  1836. * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
  1837. (cxx_omp_clause_dtor): New.
  1838. * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
  1839. (cxx_omp_clause_default_ctor): Use it.
  1840. (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
  1841. Likewise.
  1842. (cxx_omp_clause_dtor): New.
  1843. * semantics.c (finish_omp_clauses): Rewrite cdtor
  1844. checking to fill in CP_OMP_CLAUSE_INFO. Don't
  1845. specialcase LASTPRIVATE for removal.
  1846. (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
  1847. cxx_omp_clause_assign_op): Move to cp-gimplify.c.
  1848. 2005-10-28 Jakub Jelinek <jakub@redhat.com>
  1849. * semantics.c (finish_omp_threadprivate): If
  1850. DECL_RTL_SET_P, call make_decl_rtl again so that
  1851. encode_section_info can update SYMBOL_REF's flags.
  1852. 2005-10-26 Jakub Jelinek <jakub@redhat.com>
  1853. * semantics.c (finish_omp_for): Don't segfault if COND
  1854. or INCR is NULL. If not calling c_finish_omp_for
  1855. right away and one of COND and INCR is NULL, issue
  1856. error and don't expand anything.
  1857. PR c++/24512
  1858. * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
  1859. * semantics.c (finish_omp_for): Likewise. Set
  1860. OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
  1861. into the current statement list if not processing
  1862. template decl or pass it to c_finish_omp_for.
  1863. * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
  1864. into PRE_BODY statement list. Pass it to finish_omp_for.
  1865. * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
  1866. OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
  1867. finish_omp_for. Put all the statements into sk_omp
  1868. scope.
  1869. 2005-10-25 Jakub Jelinek <jakub@redhat.com>
  1870. PR c++/24516
  1871. * parser.c (struct cp_parser): Rename in_iteration_statement
  1872. field to in_statement.
  1873. (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
  1874. (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
  1875. (cp_parser_new, cp_parser_begin_omp_structured_block,
  1876. cp_parser_end_omp_structured_block,
  1877. cp_parser_omp_for_loop): Adjust for
  1878. in_iteration_statement renaming.
  1879. (cp_parser_selection_statement): Save
  1880. parser->in_iteration, or it temporarily with
  1881. IN_SWITCH_STMT for the
  1882. cp_parser_implicitly_scoped_statement call.
  1883. (cp_parser_iteration_statement): Adjust for
  1884. in_iteration_statement renaming. Use
  1885. IN_ITERATION_STMT rather than true.
  1886. (cp_parser_jump_statement): Adjust for
  1887. in_iteration_statement renaming and new values. Don't
  1888. error on break in a switch statement within OMP_FOR or
  1889. OpenMP structured block.
  1890. PR c++/24513
  1891. * parser.c (cp_parser_cache_group): Don't stop if next
  1892. token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
  1893. well. If current token is CPP_PRAGMA, consume
  1894. everything until CPP_PRAGMA_EOL inclusive.
  1895. 2005-10-24 Jakub Jelinek <jakub@redhat.com>
  1896. PR c++/24502
  1897. * semantics.c (finish_omp_for): Handle MODOP_EXPR in
  1898. addition to MODIFY_EXPR.
  1899. 2005-10-23 Richard Henderson <rth@redhat.com>
  1900. * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
  1901. (bc_label): New.
  1902. (begin_bc_block, finish_bc_block): Use it.
  1903. (push_context, pop_context): Remove.
  1904. (cp_genericize): Don't use them. Assert bc_label is null.
  1905. * semantics.c (finish_omp_clauses): Create a fake data
  1906. element of TYPE for probing ctors.
  1907. 2005-10-23 Richard Henderson <rth@redhat.com>
  1908. * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
  1909. (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
  1910. (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
  1911. (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
  1912. * semantics.c (finish_omp_clauses): Look through
  1913. arrays when looking up special member calls. Also
  1914. remove FIRSTPRIVATE when LASTPRIVATE fails.
  1915. (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
  1916. (cxx_omp_clause_assign_op): New.
  1917. * cp-tree.h: Declare them.
  1918. 2005-10-21 Richard Henderson <rth@redhat.com>
  1919. * decl.c (check_previous_goto_1): Return false if error.
  1920. (check_switch_goto): Likewise.
  1921. (finish_case_label): Don't emit the case label on error.
  1922. * parser.c (struct cp_parser): Revert
  1923. in_switch_statement_p changes.
  1924. (cp_parser_labeled_statement,
  1925. cp_parser_selection_statement): Likewise.
  1926. (cp_parser_begin_omp_structured_block): Don't save...
  1927. (cp_parser_end_omp_structured_block): or restore
  1928. in_switch_statement_p.
  1929. 2005-10-21 Richard Henderson <rth@redhat.com>
  1930. * semantics.c (finish_omp_threadprivate): Set
  1931. decl_flags.u2sel when necessary.
  1932. 2005-10-21 Richard Henderson <rth@redhat.com>
  1933. * decl.c (poplevel_named_label_1): Restore creation of the
  1934. bad_decls list.
  1935. (decl_jump_unsafe): Check for error_mark_node types.
  1936. (check_goto): Don't check cdtor_label. Don't use identify_goto.
  1937. * semantics.c (finish_return_stmt): Do check_omp_return before
  1938. converting to cdtor_label goto.
  1939. 2005-10-21 Richard Henderson <rth@redhat.com>
  1940. PR c++/24451
  1941. * decl.c (check_omp_return): Return false on error.
  1942. * cp-tree.h (check_omp_return): Update decl.
  1943. * semantics.c (finish_return_stmt): Avoid adding
  1944. return on error.
  1945. 2005-10-21 Richard Henderson <rth@redhat.com>
  1946. * cp-tree.h (struct language_function): Remove
  1947. x_named_label_uses.
  1948. Change x_named_labels to a hashtable.
  1949. (check_omp_return): Declare.
  1950. * decl.c (struct named_label_use_entry): Rename from
  1951. named_label_use_list. Remove label_decl.
  1952. (struct named_label_entry): Rename from
  1953. named_label_list. Remove old_value and next. Change
  1954. in_try_scope and in_catch_scope to bool. Add
  1955. in_omp_scope.
  1956. (pop_labels_1): New.
  1957. (pop_labels): Use it.
  1958. (pop_local_label, poplevel_named_label_1): New.
  1959. (poplevel): Use them.
  1960. (named_label_entry_hash, named_label_entry_eq): New.
  1961. (make_label_decl): Create named_labels. Move label
  1962. creation bits from lookup_label.
  1963. (declare_local_label): Tidy.
  1964. (identify_goto): Split out from ...
  1965. (check_previous_goto_1): Add exited_omp argument.
  1966. Handle omp scopes.
  1967. (use_label): Merge into...
  1968. (check_goto): ... here. Handle omp scopes.
  1969. (check_omp_return): New.
  1970. (check_previous_gotos): Merge into...
  1971. (define_label): ... here.
  1972. (save_function_data): Remove x_named_label_uses reference.
  1973. (finish_function): Likewise.
  1974. * name-lookup.h (sk_omp): New.
  1975. * name-lookup.c (begin_scope): Handle it.
  1976. * parser.c (cp_parser_omp_for): Don't create extra
  1977. compound stmt.
  1978. (cp_parser_omp_sections): Likewise.
  1979. * semantics.c (finish_return_stmt): Call check_omp_return.
  1980. (begin_omp_structured_block): Use sk_omp.
  1981. (finish_omp_structured_block): Use do_poplevel. Don't build a
  1982. MUST_NOT_THROW expression here.
  1983. (begin_omp_parallel, finish_omp_parallel): Don't create extra
  1984. compound statements.
  1985. 2005-10-21 Diego Novillo <dnovillo@redhat.com>
  1986. PR 24455
  1987. * cp/cp-tree.h (struct lang_decl_flags): Add field
  1988. threadprivate_p.
  1989. (CP_DECL_IS_THREADPRIVATE): Define.
  1990. * cp/semantics.c (finish_omp_threadprivate): Set. Do
  1991. not error out if CP_DECL_IS_THREADPRIVATE is set
  1992. already.
  1993. * cp/decl.c (duplicate_decls): Merge
  1994. CP_DECL_THREADPRIVATE_P.
  1995. 2005-10-20 Richard Henderson <rth@redhat.com>
  1996. * cp-gimplify.c (cp_gimplify_omp_for): New.
  1997. (cp_gimplify_expr): Call it.
  1998. * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
  1999. * parser.c (struct cp_parser): Rename
  2000. in_iteration_statement_p to in_iteration_statement and
  2001. change to unsigned char. Similarly with
  2002. in_switch_statement. Update all users.
  2003. (IN_OMP_BLOCK, IN_OMP_FOR): New.
  2004. (cp_parser_labeled_statement): Diagnose case labels
  2005. binding closer to an openmp block nested than the
  2006. switch.
  2007. (cp_parser_jump_statement): Diagnose break and
  2008. continue labels binding closer to an openmp block than
  2009. an iteration or switch.
  2010. (cp_parser_omp_for_loop): Mark in_iteration_statement
  2011. for an omp for.
  2012. (cp_parser_begin_omp_structured_block): New.
  2013. (cp_parser_end_omp_structured_block): New.
  2014. (cp_parser_omp_structured_block): Use them.
  2015. (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
  2016. (cp_parser_omp_parallel): Likewise.
  2017. 2005-10-20 Richard Henderson <rth@redhat.com>
  2018. * semantics.c (begin_omp_structured_block): New.
  2019. (finish_omp_structured_block): New.
  2020. (begin_omp_parallel, finish_omp_parallel): Use them.
  2021. * parser.c (cp_parser_omp_structured_block): Likewise.
  2022. (cp_parser_omp_for): Likewise.
  2023. (cp_parser_omp_sections_scope): Likewise.
  2024. * cp-tree.h: Declare them.
  2025. 2005-10-20 Richard Henderson <rth@redhat.com>
  2026. * parser.c (cp_parser_omp_master): Return the statement.
  2027. (cp_parser_omp_ordered): Likewise.
  2028. (cp_parser_omp_construct): Set the locus for them.
  2029. 2005-10-19 Richard Henderson <rth@redhat.com>
  2030. * semantics.c (finish_omp_atomic): Revert to
  2031. uses_template_parms.
  2032. 2005-10-19 Richard Henderson <rth@redhat.com>
  2033. * semantics.c (finish_omp_clauses): Avoid
  2034. DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some
  2035. stub asserts guaranteed to fail.
  2036. 2005-10-19 Richard Henderson <rth@redhat.com>
  2037. * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
  2038. (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
  2039. * parser.c (cp_parser_omp_clause_copyin): Remove.
  2040. (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
  2041. Call finish_omp_clauses.
  2042. (cp_parser_omp_clause_if): Don't do error checking here.
  2043. (cp_parser_omp_clause_num_threads): Likewise.
  2044. (cp_parser_omp_clause_schedule): Likewise.
  2045. (cp_parser_omp_atomic): Use finish_omp_atomic.
  2046. (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
  2047. Don't decompose assignment statment here. Use
  2048. finish_omp_for.
  2049. * pt.c (tsubst_omp_clauses): New.
  2050. (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
  2051. OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
  2052. * semantics.c (finish_omp_clauses): New.
  2053. (begin_omp_parallel, finish_omp_parallel): Know Less about the
  2054. internals of the stmt_list stack.
  2055. (finish_omp_for, finish_omp_atomic): New.
  2056. 2005-10-18 Jakub Jelinek <jakub@redhat.com>
  2057. * semantics.c (cxx_omp_predetermined_sharing): New function.
  2058. * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
  2059. * cp-objcp-common.h
  2060. (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
  2061. 2005-10-18 Richard Henderson <rth@redhat.com>
  2062. * parser.c (cp_parser_omp_single): Use make_node and accessors
  2063. instead of build.
  2064. 2005-10-17 Richard Henderson <rth@redhat.com>
  2065. * parser.c (cp_parser_omp_for_loop): Handle declarations.
  2066. 2005-10-12 Richard Henderson <rth@redhat.com>
  2067. * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
  2068. * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
  2069. (finish_omp_threadprivate): Declare.
  2070. * parser.c (struct cp_lexer): Add in_pragma.
  2071. (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
  2072. when in_pragma.
  2073. (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
  2074. (cp_parser_skip_to_end_of_statement): Likewise.
  2075. (cp_parser_skip_to_end_of_block_or_statement): Likewise.
  2076. (cp_parser_skip_to_closing_brace): Likewise.
  2077. (cp_parser_skip_to_pragma_eol): Reset in_pragma.
  2078. (cp_parser_require_pragma_eol): New.
  2079. (cp_parser_statement): Add in_compound argument;
  2080. update all callers.
  2081. Restart if a non-statement pragma seen outside a
  2082. compound.
  2083. (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
  2084. (cp_parser_declaration_seq_opt): Likewise.
  2085. (cp_parser_member_specification_opt): Likewise.
  2086. (cp_parser_function_definition_after_decl): Likewise.
  2087. (cp_parser_skip_until_found): Likewise.
  2088. (cp_parser_cache_group): Likewise.
  2089. (enum pragma_omp_clause, cp_parser_omp_clause_name,
  2090. check_no_duplicate_clause,
  2091. cp_parser_omp_var_list_no_open,
  2092. cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
  2093. cp_parser_omp_clause_default, cp_parser_omp_clause_if,
  2094. cp_parser_omp_clause_nowait,
  2095. cp_parser_omp_clause_num_threads,
  2096. cp_parser_omp_clause_ordered,
  2097. cp_parser_omp_clause_reduction,
  2098. cp_parser_omp_clause_schedule,
  2099. cp_parser_omp_all_clauses,
  2100. cp_parser_omp_structured_block, cp_parser_omp_atomic,
  2101. cp_parser_omp_barrier, cp_parser_omp_critical,
  2102. cp_parser_omp_flush, cp_parser_omp_for_loop,
  2103. cp_parser_omp_for, cp_parser_omp_master,
  2104. cp_parser_omp_ordered, cp_parser_omp_sections_scope,
  2105. cp_parser_omp_sections, cp_parser_omp_parallel,
  2106. cp_parser_omp_single, cp_parser_omp_threadprivate,
  2107. cp_parser_omp_construct): New.
  2108. (cp_parser_pragma): Handle OpenMP pragmas.
  2109. * semantics.c (finish_omp_threadprivate): New.
  2110. (begin_omp_parallel, finish_omp_parallel): New.
  2111. 2005-10-11 Richard Henderson <rth@redhat.com>
  2112. * parser.c (struct cp_token): Add pragma_kind.
  2113. (eof_token): Initialize it.
  2114. (cp_lexer_handle_pragma): Remove.
  2115. (cp_parser_initial_pragma): New.
  2116. (cp_lexer_new_main): Use it.
  2117. (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
  2118. (cp_lexer_print_token): Don't handle CPP_PRAGMA.
  2119. (cp_parser_skip_to_pragma_eol): New.
  2120. (cp_parser_error): Use it.
  2121. (pragma_lex): New.
  2122. 2005-10-09 Richard Henderson <rth@redhat.com>
  2123. * lex.c (parse_strconst_pragma): Update for c_lex name change.
  2124. (handle_pragma_java_exceptions): Likewise.
  2125. * parser.c (cp_lexer_new_main): Likewise.
  2126. 2005-10-06 Richard Henderson <rth@redhat.com>
  2127. * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
  2128. (cp_lexer_handle_pragma): Comment out
  2129. cpp_handle_deferred_pragma.
  2130. 2005-10-01 Richard Henderson <rth@redhat.com>
  2131. * name-lookup.c (lookup_name): Remove prefer_type argument.
  2132. (lookup_name_prefer_type): New function.
  2133. * name-lookup.h (lookup_name_prefer_type): Declare it.
  2134. * decl.c (lookup_and_check_tag): Use it.
  2135. * pt.c (tsubst_friend_class): Likewise. Update for
  2136. lookup_name change.
  2137. (lookup_template_class, tsubst_copy_and_build): Likewise.
  2138. 2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2139. PR c++/15759
  2140. * tree.c (bot_manip): Don't call mark_used.
  2141. 2006-03-02 Mike Stump <mrs@apple.com>
  2142. * decl2.c (import_export_decl): Remove redundant call to
  2143. targetm.cxx.key_method_may_be_inline ().
  2144. 2006-03-02 Richard Sandiford <richard@codesourcery.com>
  2145. * decl.c (start_decl): Use have_global_bss_p when deciding
  2146. whether to make the decl common.
  2147. 2006-03-01 Mike Stump <mrs@apple.com>
  2148. PR darwin/25908
  2149. * decl2.c (import_export_decl): Fix ABI breakage on darwin.
  2150. 2006-02-24 Geoffrey Keating <geoffk@apple.com>
  2151. * except.c (expand_start_catch_block): Handle
  2152. flag_use_cxa_get_exception_ptr.
  2153. 2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2154. PR c++/26291
  2155. * decl.c (grok_op_properties): Check for ellipsis in arguments of
  2156. operators.
  2157. 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
  2158. * Make-lang.in (C++): Remove.
  2159. (.PHONY): Remove C++.
  2160. 2006-02-18 Mark Mitchell <mark@codesourcery.com>
  2161. PR c++/26266
  2162. * cp-tree.h (cp_finish_decl): Adjust declaration.
  2163. (grokbitfield): Likewise.
  2164. (finish_static_data_member_decl): Likewise.
  2165. * init.c (constant_value_1): Ensure processing_template_decl when
  2166. folding non-dependent initializers for static data members of
  2167. dependent types. Return error_mark_node for erroneous
  2168. initailizers.
  2169. * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
  2170. * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
  2171. (cp_finish_decl): Add init_const_expr_p parameter. Set
  2172. DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
  2173. (finish_decl): Adjust call to cp_finish_decl.
  2174. (compute_array_index_type): Robustify.
  2175. (start_method): Use finish_decl, not cp_finish_decl.
  2176. * rtti.c (emit_tinfo_decl): Likewise.
  2177. * except.c (initialize_handler_parm): Adjust call to
  2178. cp_finish_decl.
  2179. (expand_start_catch_block): Likewise.
  2180. * cvt.c (build_up_reference): Adjust call to cp_finish_decl.
  2181. * pt.c (instantiate_class_template): Adjust call to
  2182. finish_static_data_member_decl.
  2183. (tsubst_expr): Use finish_decl, not cp_finish_decl.
  2184. (instantiate_decl): Adjust call to cp_finish_decl.
  2185. * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
  2186. cp_finish_decl.
  2187. * decl2.c (finish_static_data_member_decl): Add init_const_expr_p
  2188. parameter.
  2189. (grokfield): Likewise.
  2190. * parser.c (cp_parser_condition): Check for constant initializers.
  2191. (cp_parser_init_declarator): Adjust calls to grokfield and
  2192. cp_finish_decl. Don't set
  2193. DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
  2194. (cp_parser_member_declaration): Likewise.
  2195. (cp_parser_objc_class_ivars): Likewise.
  2196. 2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2197. * call.c (standard_conversion): Return NULL instead of 0.
  2198. (build_user_type_conversion_1): Likewise.
  2199. (tourney): Likewise.
  2200. * decl.c (redeclaration_error_message): Likewise.
  2201. * error.c (language_to_string): Likewise.
  2202. 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2203. * cp-tree.h (warn_hidden): Remove prototype.
  2204. * class.c (warn_hidden): Make static.
  2205. * cp-tree.h (build_type_conversion): Remove prototype.
  2206. * cvt.c (build_type_conversion): Add prototype, make static.
  2207. * cp-tree.h (push_tinst_level): Remove prototype.
  2208. (pop_tinst_level): Likewise.
  2209. * pt.c (push_tinst_level): Add prototype, make static.
  2210. (pop_tinst_level): Likewise.
  2211. 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2212. * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
  2213. * typeck.c (unary_complex_lvalue): Likewise.
  2214. 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2215. * lex.c (parse_strconst_pragma): Return error_mark_node instead of
  2216. "(tree)-1" to indicate failure. Simplify.
  2217. (handle_pragma_interface): Test for error_mark_node instead of
  2218. "(tree)-1".
  2219. (handle_pragma_implementation): Likewise.
  2220. 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2221. PR c++/26151
  2222. * parser.c (cp_parser_decl_specifier_seq): Check for duplicate
  2223. decl-specifiers. Remove extra check for duplicate 'friend'.
  2224. * decl.c (grokdeclarator): Remove check for duplicate
  2225. decl-specifiers. Set longlong together with long_p.
  2226. 2006-02-12 Jason Merrill <jason@redhat.com>
  2227. PR c++/24996
  2228. * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
  2229. TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
  2230. 2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2231. * class.c (debug_class): Remove extern.
  2232. (debug_thunks): Likewise.
  2233. 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2234. * typeck.c (string_conv_p): Don't test for flag_const_strings.
  2235. 2006-02-08 Jason Merrill <jason@redhat.com>
  2236. PR c++/25979
  2237. * cp-gimplify.c (cp_gimplify_expr): Don't call
  2238. cp_gimplify_init_expr for MODIFY_EXPRs.
  2239. * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
  2240. 2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2241. PR c++/26071
  2242. * decl.c (grokdeclarator): Set dname also for destructor.
  2243. PR c++/26070
  2244. * decl.c (grokdeclarator): Clear storage_class together with staticp.
  2245. 2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2246. * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
  2247. (cp_build_qualified_type): Propogate renaming.
  2248. * call.c (convert_like_real): Likewise.
  2249. * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
  2250. * decl.c (make_typename_type, grokdeclarator): Likewise.
  2251. * pt.c (tsubst_friend_function, instantiate_class_template,
  2252. tsubst_default_argument, instantiate_decl,
  2253. tsubst_initializer_list, tsubst_enum): Likewise.
  2254. * semantics.c (finish_template_type): Likewise.
  2255. * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
  2256. 2006-02-07 Dirk Mueller <dmueller@suse.com>
  2257. * typeck.c (build_binary_op): Annotate div-by-zero
  2258. warnings to make -Wno-div-by-zero have an effect.
  2259. 2006-02-07 Mark Mitchell <mark@codesourcery.com>
  2260. PR c++/9737
  2261. * pt.c (coerce_template_template_parms): Do not templates with
  2262. excess default arguments to match template template parameters
  2263. with fewer parameters.
  2264. (coerce_template_parms): Add use_default_args parameter; use
  2265. default arguments only when true.
  2266. (lookup_template_class): Adjust call to coerce_template_parms.
  2267. (fn_type_unification): Likewise.
  2268. (unify): Likewise.
  2269. (get_bindings): Likewise.
  2270. (dependent_type_p): Add assertions.
  2271. 2006-02-06 Roger Sayle <roger@eyesopen.com>
  2272. * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
  2273. * rtti.c (typeinfo_in_lib_p): Likewise.
  2274. * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
  2275. * name-lookup.c (arg_assoc_type): Likewise.
  2276. 2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2277. * cp-tree.h (tf_warn_or_error): New substituion flag.
  2278. (cp_build_qualified_type): Use it.
  2279. * call.c (convert_like_real): Likewise.
  2280. * cvt.c (cp_convert_to_pointer): Likewise.
  2281. (convert_to_reference): Likewise.
  2282. * decl.c (make_typename_type): Likewise.
  2283. (grokdeclarator): Likewise.
  2284. * pt.c (tsubst_friend_function): Likewise.
  2285. (tsubst_friend_class): Likewise.
  2286. (instantiate_class_template): Likewise.
  2287. (tsubst_default_argument): Likewise.
  2288. (instantiate_decl): Likewise.
  2289. (tsubst_initializer_list): Likewise.
  2290. (tsubst_enum): Likewise.
  2291. * semantics.c (finish_template_type): Likewise.
  2292. * typeck.c (build_ptrmemfunc): Likewise.
  2293. (convert_for_assignment): Likewise.
  2294. 2006-02-03 Lee Millward <lee.millward@gmail.com>
  2295. * typeck.c (string_conv_p): Pass appropiate
  2296. OPT_Wxxxx values when calling warning().
  2297. (build_array_ref, cxx_mark_addressable): Likewise.
  2298. (check_return_expr): Likewise.
  2299. * init.c (perform_member_init): Likewise.
  2300. (sort_mem_initializers, emit_mem_initializers): Likewise.
  2301. * class.c (check_field_decls): Likewise.
  2302. (warn_about_ambiguous_bases): Likewise.
  2303. * decl.c (pop_label, poplevel): Likewise.
  2304. (duplicate_decls, grok_op_properties): Likewise.
  2305. (start_preparsed_function, finish_function): Likewise.
  2306. * name-lookup.c (pushdecl_maybe_friend): Likewise.
  2307. (pushdecl_maybe_friend): Likewise.
  2308. * parser.c (cp_parser_warn_min_max): Likewise.
  2309. (cp_parser_cast_expression): Likewise.
  2310. * method.c (lazily_declare_fn): Likewise.
  2311. * cvt.c (convert_to_void): Likewise.
  2312. * mangle.c (finish_mangling): Likewise.
  2313. * cp-gimplify.c (gimplify_expr_stmt): Likewise.
  2314. 2006-02-03 Mark Mitchell <mark@codesourcery.com>
  2315. * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
  2316. not IDENTIFIER_OPNAME_P.
  2317. 2006-01-31 Mark Mitchell <mark@codesourcery.com>
  2318. PR c++/25342
  2319. * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
  2320. documentation.
  2321. * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
  2322. not TREE_VALUE.
  2323. (instantiate_class_template): Simplify.
  2324. (verify_class_unification): Remove.
  2325. (unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to
  2326. permit multiple levels of template arguments.
  2327. (more_specialized_class): Simplify.
  2328. (get_class_bindings): Pass full arguments to unify. Fold
  2329. verify_class_unification into this function. Return full
  2330. arguments.
  2331. (most_specialized_class): Adjust for changes to
  2332. get_class_bindings. Issue errors here for ambiguity. Return the
  2333. fully deduced arguments for the most specialized class, in
  2334. addition to the partial specialization.
  2335. 2006-01-31 Ben Elliston <bje@au.ibm.com>
  2336. * mangle.c: Comment fix.
  2337. 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2338. * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
  2339. * repo.c (extract_string, afgets): Use cast when converting from
  2340. void *.
  2341. 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2342. * call.c (alloc_conversion): Use cast when converting from void *.
  2343. (alloc_conversions): Likewise.
  2344. (add_candidate): Likewise.
  2345. (print_z_candidates): Likewise.
  2346. (add_warning): Likewise.
  2347. * pt.c (retrieve_local_specialization): Likewise.
  2348. (process_partial_specialization): Likewise.
  2349. (mangle_class_name_for_template): Likewise.
  2350. (tsubst_template_args): Likewise.
  2351. * typeck2.c (pat_calc_hash): Likewise.
  2352. (pat_compare): Likewise.
  2353. (abstract_virtuals_error): Likewise.
  2354. * class.c (method_name_cmp): Likewise.
  2355. (resort_method_name_cmp): Likewise.
  2356. (get_vfield_name): Likewise.
  2357. * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
  2358. * lex.c (init_reswords): Likewise.
  2359. * rtti.c (create_pseudo_type_info): Likewise.
  2360. * search.c (dfs_lookup_base): Likewise.
  2361. (dfs_dcast_hint_pre): Likewise.
  2362. (dfs_dcast_hint_post): Likewise.
  2363. * tree.c (hash_tree_cons): Likewise.
  2364. * repo.c (extract_string): Likewise.
  2365. (afgets): Likewise.
  2366. * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
  2367. * g++spec.c (lang_specific_driver): Likewise.
  2368. 2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2369. * call.c (joust): Pass option code to warning. Use inform for
  2370. explanation.
  2371. * class.c (check_bases): Likewise.
  2372. (maybe_warn_about_overly_private_class): Likewise.
  2373. (check_field_decls): Likewise.
  2374. (layout_empty_base): Likewise.
  2375. (layout_virtual_bases): Likewise.
  2376. (layout_class_type): Likewise.
  2377. 2006-01-28 Mark Mitchell <mark@codesourcery.com>
  2378. PR c++/25999
  2379. * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
  2380. here, not ...
  2381. (start_function): ... here.
  2382. 2006-01-28 Mark Mitchell <mark@codesourcery.com>
  2383. PR c++/25855
  2384. * class.c (resolve_address_of_overloaded_function): Adjust use of
  2385. return value from most_specialized_instantiation.
  2386. * pt.c (determine_specialization): Avoid multiple calls to
  2387. get_bindings.
  2388. (most_specialized_instantiation): When a tie occurs, set the
  2389. current presumed champion to the next template. Return the
  2390. TREE_LIST node containing the template, rather than the template
  2391. itself.
  2392. (most_specialized): Remove.
  2393. * name-lookup.c (push_overloaded_decl): When duplicate_decls
  2394. indicates a failed redeclaration, report that to callers.
  2395. 2006-01-26 Jason Merrill <jason@redhat.com>
  2396. PR c++/16021
  2397. * name-lookup.c (parse_using_directive): Require strong using to
  2398. name a nested namespace.
  2399. 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2400. Revert:
  2401. * cp-tree.h (do_poplevel): Remove prototype.
  2402. * semantics.c (do_poplevel): Add prototype. Make static.
  2403. Revert:
  2404. * cp-tree.h (default_conversion): Remove prototype.
  2405. * typeck.c (default_conversion): Make static.
  2406. 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2407. * cp-tree.h (get_primary_binfo): Remove prototype.
  2408. (push_using_decl): Likewise.
  2409. (current_template_args): Likewise.
  2410. (more_specialized_class): Likewise.
  2411. (mark_class_instantiated): Likewise.
  2412. (default_conversion): Likewise.
  2413. (pfn_from_ptrmemfunc): Likewise.
  2414. * class.c (get_primary_binfo): Add prototype, make static, simplify.
  2415. * name-lookup.c (push_using_decl): Make static.
  2416. * pt.c (current_template_args): Likewise.
  2417. (more_specialized_class): Likewise.
  2418. (mark_class_instantiated): Likewise.
  2419. * typeck.c (default_conversion): Make static.
  2420. (pfn_from_ptrmemfunc): Add prototype, make static.
  2421. 2006-01-24 Dirk Mueller <dmueller@suse.de>
  2422. * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
  2423. 2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2424. PR c++/25552
  2425. * parser.c (cp_parser_unqualified_id): Check that destructor name
  2426. and scope match.
  2427. * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
  2428. Adjust comment. Return early if possible.
  2429. Use same_type_p to compare types.
  2430. * typeck.c (lookup_destructor): Adjust call to check_dtor_name.
  2431. 2006-01-24 Mark Mitchell <mark@codesourcery.com>
  2432. * semantics.c: Remove outdated comment.
  2433. 2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2434. * cp-tree.h (do_poplevel): Remove prototype.
  2435. * semantics.c (do_poplevel): Add prototype. Make static.
  2436. * cp-tree.h (original_type): Remove prototype.
  2437. * typeck.c (original_type): Make static.
  2438. * cp-tree.h (declare_global_var): Remove prototype.
  2439. * decl.c (declare_global_var): Make static.
  2440. * cp-tree.h (implicitly_declare_fn): Remove prototype.
  2441. * method.c (implicitly_declare_fn): Make static.
  2442. * cp-tree.h (fold_decl_constant_value): Remove prototype.
  2443. * pt.c (fold_decl_constant_value): Make static.
  2444. * cp-tree.h (build_x_delete): Remove prototype.
  2445. * init.c (build_vec_delete_1): Call build_op_delete_call directly
  2446. and not via build_x_delete.
  2447. (build_x_delete): Remove.
  2448. * cp-tree.h (get_vtt_name): Remove prototype.
  2449. * class.c (get_vtt_name): Remove.
  2450. (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
  2451. 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2452. * rtti.c (build_dynamic_cast): Fix comment.
  2453. 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2454. PR c++/10891
  2455. * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
  2456. -fno-rtti.
  2457. 2006-01-21 Mark Mitchell <mark@codesourcery.com>
  2458. PR c++/25895
  2459. * class.c (build_base_path): Generate a NOP_EXPR instead of a
  2460. COMPONENT_REF if the base and derived classes are at the same
  2461. address.
  2462. PR c++/25856
  2463. * decl.c (begin_destructor_body): Robustify.
  2464. PR c++/25858
  2465. * parser.c (cp_parser_direct_declarator): Robustify.
  2466. 2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2467. * parser.c (cp_lexer_next_token_is_keyword): Simplify.
  2468. * parser.c (clear_decl_specs): Remove prototype.
  2469. * parser.c (cp_parser_expression_fn): Remove.
  2470. * call.c (add_builtin_candidates): Remove superfluous return.
  2471. * name-lookup.c (do_toplevel_using_decl): Likewise.
  2472. * parser.c (cp_parser_type_specifier_seq): Likewise.
  2473. (cp_parser_save_default_args): Likewise.
  2474. 2006-01-20 Dirk Mueller <dmueller@suse.com>
  2475. PR c++/5520
  2476. * semantics.c (finish_if_stmt): Call empty_body_warning.
  2477. * parser.c (cp_parser_implicitly_scoped_statement):
  2478. Mark empty statement with an empty stmt.
  2479. 2006-01-19 Mark Mitchell <mark@codesourcery.com>
  2480. PR c++/22136
  2481. * name-lookup.c (do_class_using_decl): Don't try to look up base
  2482. classes in templates with dependent base types.
  2483. 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2484. PR c++/25854
  2485. * pt.c (maybe_process_partial_specialization): Return early on
  2486. error_mark_node.
  2487. 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2488. PR c++/16829
  2489. * decl.c (start_preparsed_function): Check default arguments
  2490. unconditionally.
  2491. * name-lookup.c (pushdecl_maybe_friend): Check default arguments
  2492. of all functions and function templates.
  2493. * parser.c (cp_parser_late_parsing_default_args): Check default
  2494. arguments.
  2495. * decl2.c (check_default_args): Set missing default arguments to
  2496. error_mark_node.
  2497. 2006-01-18 Mark Mitchell <mark@codesourcery.com>
  2498. PR c++/25836
  2499. * cp-tree.h (push_class_stack): New function.
  2500. (pop_class_stack): Likewise.
  2501. * class.c (class_stack_node): Add hidden field.
  2502. (pushclass): Clear it.
  2503. (push_class_stack): New function.
  2504. (pop_class_stack): Likewise.
  2505. (currently_open_class): Ignore hidden classes.
  2506. (currently_open_derived_class): Likewise.
  2507. * name-lookup.c (push_to_top_level): Call push_class_stack.
  2508. (pop_from_top_level): Call pop_class_stack.
  2509. 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
  2510. * tree.c (find_tree_t, find_tree): Remove.
  2511. * cp-tree.h: Remove the prototype for find_tree.
  2512. 2006-01-18 Jakub Jelinek <jakub@redhat.com>
  2513. * search.c (lookup_conversions_r): Fix a pasto.
  2514. 2006-01-17 Eric Christopher <echristo@apple.com>
  2515. * call.c (convert_like_real): When issuing conversion
  2516. warnings, depend on OPT_Wconversion.
  2517. * cvt.c (build_expr_type_conversion): Ditto.
  2518. 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
  2519. * name-lookup.c (lookup_namespace_name): Remove.
  2520. * name-lookup.h: Remove the prototype for
  2521. lookup_namespace_name.
  2522. 2006-01-17 Jakub Jelinek <jakub@redhat.com>
  2523. PR c/25682
  2524. * decl.c (compute_array_index_type): After issuing not an integral
  2525. constant-expression error, set size to 1 to avoid ICEs later on.
  2526. 2006-01-16 Ian Lance Taylor <ian@airs.com>
  2527. * parser.c: Include "cgraph.h".
  2528. (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
  2529. assemble_asm.
  2530. 2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
  2531. * g++spec.c (lang_specific_spec_functions): Remove.
  2532. 2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
  2533. * decl.c (check_initializer): Fix thinko.
  2534. 2006-01-14 Mark Mitchell <mark@codesourcery.com>
  2535. PR c++/25663
  2536. * parser.c (cp_parser_direct_declarator): Use cp_parser_error
  2537. instead of error.
  2538. 2006-01-13 Jason Merrill <jason@redhat.com>
  2539. * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
  2540. * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
  2541. * pt.c (check_explicit_specialization): Likewise.
  2542. 2006-01-12 Jason Merrill <jason@redhat.com>
  2543. PR libstdc++/24660
  2544. * pt.c (check_explicit_specialization): Handle namespace
  2545. association.
  2546. * name-lookup.c (set_decl_namespace): Likewise.
  2547. 2006-01-12 Nathan Sidwell <nathan@codesourcery.com>
  2548. PR c++/24824
  2549. * class.c (handle_using_decl): Pass correct scope to
  2550. cp_emit_debug_info_for_using.
  2551. 2006-01-11 Nathan Sidwell <nathan@codesourcery.com>
  2552. PR c++/25386
  2553. * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
  2554. packedness.
  2555. 2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
  2556. * parser.c (cp_parser_primary_expression): Document the grammar
  2557. for the built-in offsetof, a GNU extension.
  2558. 2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
  2559. PR c++/25632
  2560. * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
  2561. in condition.
  2562. 2006-01-04 Chris Lattner <sabre@gnu.org>
  2563. * typeck2.c: update copyright to 2006
  2564. (split_nonconstant_init_1): Set TREE_CONSTANT to true.
  2565. 2006-01-04 Mark Mitchell <mark@codesourcery.com>
  2566. PR c++/24782
  2567. * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
  2568. checks, even when parsing tentatively.
  2569. 2006-01-04 Richard Henderson <rth@redhat.com>
  2570. Merge from gomp branch.
  2571. * lex.c (handle_pragma_java_exceptions): Fix whitespace.
  2572. * parser.c (struct cp_token): Add pragma_kind.
  2573. (eof_token): Update to match.
  2574. (struct cp_lexer): Add in_pragma; rearrange next for better packing.
  2575. (cp_parser_initial_pragma): New.
  2576. (cp_lexer_new_main): Use it. Don't bother clearing
  2577. c_lex_return_raw_strings.
  2578. (cp_lexer_get_preprocessor_token): Always initialize keyword
  2579. and pragma_kind fields. Handle CPP_PRAGMA.
  2580. (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
  2581. in_pragma is set.
  2582. (cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
  2583. (cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
  2584. (cp_parser_skip_to_pragma_eol): New.
  2585. (cp_parser_error): Use it.
  2586. (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
  2587. rearrange with switch statement.
  2588. (cp_parser_skip_to_end_of_statement): Likewise.
  2589. (cp_parser_skip_to_end_of_block_or_statement): Likewise.
  2590. (cp_parser_skip_to_closing_brace): Likewise.
  2591. (cp_parser_skip_until_found): Likewise.
  2592. (cp_parser_statement): Add in_compound argument; update callers.
  2593. Use it to decide how to handle pragma parsing.
  2594. (cp_parser_labeled_statement): Add in_compound argument; pass
  2595. it on to cp_parser_statement.
  2596. (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
  2597. (cp_parser_declaration_seq_opt): Likewise.
  2598. (cp_parser_parameter_declaration): Likewise.
  2599. (cp_parser_member_specification_opt): Likewise.
  2600. (cp_parser_function_definition_after_decl): Likewise.
  2601. (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
  2602. (cp_parser_pragma): New.
  2603. (pragma_lex): New.
  2604. 2006-01-04 Dirk Mueller <dmueller@suse.com>
  2605. * decl.c (finish_constructor_body): create simple
  2606. compound stmt instead of a if(1) { } construct.
  2607. 2006-01-03 Mark Mitchell <mark@codesourcery.com>
  2608. PR c++/25492
  2609. * name-lookup.c (push_class_level_binding): When a derived class
  2610. provides a type binding, eliminate any type binding from a base
  2611. class.
  2612. PR c++/25625
  2613. * repo.c (repo_emit_p): Always instantiate static data members
  2614. initialized by constant expressions, so that there values are
  2615. available.
  2616. 2006-01-02 Mark Mitchell <mark@codesourcery.com>
  2617. PR c++/25635
  2618. * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
  2619. conversion operator.
  2620. * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
  2621. PR c++/25638
  2622. * class.c (add_method): Never associate more than one destructor
  2623. with a single class.
  2624. PR c++/25637
  2625. * cp-tree.h (do_friend): Adjust prototype.
  2626. * decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
  2627. (grokdeclarator): Likewise. Refine check for invalid
  2628. declarations/definitions of member functions outside of their own
  2629. class.
  2630. * friend.c (do_friend): Make funcdef_flag a bool, not an int.
  2631. PR c++/25633
  2632. * parser.c (cp_parser_mem_initializer_list): Check result of
  2633. cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
  2634. (cp_parser_mem_initializer): Return error_mark_node for failure.
  2635. PR c++/25634
  2636. * parser.c (cp_parser_template_parameter_list): Call
  2637. begin_template_parm_list and end_template_parm_list here.
  2638. (cp_parser_type_parameter): Not here.
  2639. (cp_parser_template_declaration_after_export): Or here.
  2640. (cp_parser_elaborated_type_specifier): Call
  2641. cp_parser_check_template_parameters.
  2642. * tree.c (build_target_expr_with_type): Use force_target_expr.
  2643. * decl2.c (mark_used): Fix typo in comment.
  2644. 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
  2645. * parser.c (cp_parser_using_declaration): Skip name-lookup on
  2646. invalid scope.
  2647. Copyright (C) 2006 Free Software Foundation, Inc.
  2648. Copying and distribution of this file, with or without modification,
  2649. are permitted in any medium without royalty provided the copyright
  2650. notice and this notice are preserved.