summaryrefslogtreecommitdiff
path: root/gcc/c-pragma.h
Commit message (Collapse)AuthorAgeFilesLines
* Makefile.in (C_PRAGMA_H): New variable to track dependencies of c-pragma.h.Bernardo Innocenti2004-07-261-2/+4
| | | | | | | | | | * Makefile.in (C_PRAGMA_H): New variable to track dependencies of c-pragma.h. * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to enum cpp_ttype. * c-lex.c: Likewise. From-SVN: r85174
* re PR c++/9283 (__attribute__((visibility ("hidden"))) not supported for ↵Niall Douglas2004-07-251-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | class/struct) PR c++/9283 PR c++/15000 * c-common.c (c_common_attribute_table): Allow handle_visibility_attribute to be called for types. (handle_visibility_attribute) When given a type, set the visibility bits on the TYPE_NAME. When given a decl, don't set no_add_attrs so that we can check later whether the attribute was present. Added warning if attribute applied to non class type. * c-decl.c (diagnose_mismatched_decls): Updated rules for merging decls and checking that they are consistent. * common.opt: Added -fvisibility. * c.opt, c-opts.c: Added -fvisibility-inlines-hidden. * c-pragma.h, c-pragma.c: Added handle_pragma_visibility(). * flags.h, tree.h: Added assorted support defines for overall patch * opts.c: Added parsing support for -fvisibility. * tree.c (build_decl): Set visibility for all decls to be whatever is in force at that time. * varasm.c (default_binds_local_p_1): Reworked logic determining when to make a symbol locally bound. * doc/invoke.texi: Added documentation for -fvisibility and -fvisibility-inlines-hidden. PR c++/15000 PR c++/9283 * class.c (check_field_decls): Apply hidden visibility if -fvisibility-inlines-hidden and inlined unless otherwise specified (build_vtable): Set vtable visibility to class visibility. (check_field_decls): Default static member visibility to class visibility. (check_methods): Default method visibility to class visibility. * cp-tree.h: Added CLASSTYPE_VISIBILITY and CLASSTYPE_VISIBILITY_SPECIFIED macro. * decl.c (duplicate_decls): New logic for merging definition decls with declaration decls. Added ignore & warning when non default applied to global operator new or delete. * method.c, optimize.c, rtti.c: Added setting of VISIBILITY_SPECIFIED wherever VISIBILITY was changed * rtti.c (get_tinfo_decl): Set typeinfo visibility to class visibility. (tinfo_base_init): Set typeinfo name visibility to class visibility. PR c++/9283 PR c++/15000 * gcc.dg/visibility-9.c, gcc.dg/visibility-a.c: New tests. * g++.dg/ext/visibility/: New directory. * g++.dg/ext/visibility-1.C, g++.dg/ext/visibility-2.C g++.dg/ext/visibility-3.C, g++.dg/ext/visibility-4.C, g++.dg/ext/visibility-5.C, g++.dg/ext/visibility-6.C, g++.dg/ext/visibility-7.C: Move to g++.dg/ext/visibility/. * g++.dg/ext/visibility/fvisibility.C, g++.dg/ext/visibility/fvisibility-inlines-hidden.C, g++.dg/ext/visibility/fvisibility-override1.C g++.dg/ext/visibility/fvisibility-override2.C g++.dg/ext/visibility/memfuncts.C g++.dg/ext/visibility/noPLT.C g++.dg/ext/visibility/pragma.C g++.dg/ext/visibility/pragma-override1.C g++.dg/ext/visibility/pragma-override2.C g++.dg/ext/visibility/staticmemfuncts.C g++.dg/ext/visibility/virtual.C: New tests. Co-Authored-By: Brian Ryner <bryner@brianryner.com> From-SVN: r85167
* c-pragma.h (c_lex_string_translate): Change type to int.Alexandre Oliva2004-06-151-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | gcc/ChangeLog: * c-pragma.h (c_lex_string_translate): Change type to int. * c-parse.in: Change all assignments of c_lex_string_translate to true and false to 1 and 0. * c-lex.c (c_lex_string_translate): Likewise. (lex_string): Convert string without translation in the -1 case. gcc/cp/ChangeLog: * parser.c: Change all assignments of c_lex_string_translate to true and false to 1 and 0. (cp_lexer_read_token): Convert type of the translated string. (cp_parser_skip_to_closing_parentheses): Preserve original value of c_lex_string_translate, and set it to -1 while running. (cp_parser_cache_group): Likewise. (cp_parser_cache_group_1): Renamed. (cp_parser_asm_operand_list): Remove redundant setting of c_lex_string_translate. (cp_parser_primary_expression) [CPP_STRING, CPP_WSTRING]: Handle chained strings. From-SVN: r83201
* target-supports.exp (check-iconv-available): New function.Eric Christopher2004-02-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-02-26 Eric Christopher <echristo@redhat.com> * lib/target-supports.exp (check-iconv-available): New function. * lib/gcc-dg.exp (dg-require-iconv): New function. Use above. * gcc.dg/charset: New directory. * gcc.dg/charset/charset.exp: New file. * gcc.dg/charset/asm1.c: Ditto. * gcc.dg/charset/asm2.c: Ditto. * gcc.dg/charset/asm3.c: Ditto. * gcc.dg/charset/asm4.c: Ditto. * gcc.dg/charset/asm5.c: Ditto. * gcc.dg/charset/attribute1.c: Ditto. * gcc.dg/charset/attribute2.c: Ditto. * gcc.dg/charset/string1.c: Ditto. * g++.dg/charset: New directory. * g++.dg/dg.exp: Add here. Special options. * g++.dg/charset/charset.exp: New file. * g++.dg/charset/asm1.c: Ditto. * g++.dg/charset/asm2.c: Ditto. * g++.dg/charset/asm3.c: Ditto. * g++.dg/charset/asm4.c: Ditto. * g++.dg/charset/attribute1.c: Ditto. * g++.dg/charset/attribute2.c: Ditto. * g++.dg/charset/extern1.cc: Ditto. * g++.dg/charset/extern2.cc: Ditto. * g++.dg/charset/string1.c: Ditto. 2004-02-26 Eric Christopher <echristo@redhat.com> * c-lex.c (c_lex_string_translate): New variable. (lex_string): Use to determine string translation. * c-pragma.h: Prototype. * c-parse.in (start_string_translation): New. Set above. (stop_string_translation): Ditto. (attribute, attribute_list, asm_def, asm_stmt, asm_operand): Use above functions. * cp/parser.c (cp_parser_declaration): Translate strings unless token is RID_EXTERN. Set c_lex_string_translate for recursive use. (cp_parser_asm_definition): Only translate argument strings to asms. (cp_parser_asm_operand_list): Ditto. (cp_parser_attribute_list): Do not translate attribute strings. From-SVN: r78548
* alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,Kazu Hirata2004-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h, flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h, ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def, tree-optimize.c, vmsdbgout.c, config/fp-bit.c, config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md, config/alpha/unicosmk.h, config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c, config/c4x/c4x-protos.h, config/c4x/c4x.md, config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c, config/i386/cygming.h, config/i386/djgpp.h, config/i386/emmintrin.h, config/i386/gthr-win32.c, config/i386/i386-interix.h, config/i386/i386-protos.h, config/i386/openbsd.h, config/i386/winnt.c, config/i386/xm-mingw32.h, config/i386/xmmintrin.h, config/ia64/ia64.md, config/iq2000/iq2000.md, config/m32r/m32r.md, config/m68k/m68k.md, config/mcore/mcore-elf.h, config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, config/mips/iris5gas.h, config/mips/iris6.h, config/mips/iris6gas.h, config/mips/linux.h, config/mips/mips.md, config/mips/netbsd.h, config/mips/openbsd.h, config/mips/windiss.h, config/pa/fptr.c, config/rs6000/aix.h, config/rs6000/altivec.h, config/rs6000/darwin.h, config/rs6000/xcoff.h, config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, config/s390/s390.md, config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h, config/sparc/sol2.h: Update copyright. From-SVN: r77018
* c-lex.c (c_lex): Rename to...Giovanni Bajo2004-01-291-0/+1
| | | | | | | | | * c-lex.c (c_lex): Rename to... (c_lex_with_flags): Add new parameter to get CPP flags. (c_lex): Thunk to c_lex_with_flags while keeping the old interface. * c-pragma.h (c_lex_with_flags): Declare. From-SVN: r76844
* c-pragma.h (HANDLE_PRAGMA_WEAK): Always define to SUPPORTS_WEAK.J"orn Rennecke2003-07-161-4/+1
| | | | | | | | | gcc: * c-pragma.h (HANDLE_PRAGMA_WEAK): Always define to SUPPORTS_WEAK. gcc/testsuite: * gcc.dg/asm-names.c (ymain): Make it weak. From-SVN: r69459
* basic-block.h: Convert prototypes to ISO C90.Andreas Jaeger2003-07-061-3/+2
| | | | | | | | | | | | | | | | | | * basic-block.h: Convert prototypes to ISO C90. * c-parse.in: Likewise. * c-pragma.h: Likewise. * c-typeck.c: Likewise. * cfghooks.h: Likewise. * cfgloopanal.c: Likewise. * dbxout.h: Likewise. * debug.h: Likewise. * dwarf2asm.h: Likewise. * gcov.c: Likewise. * gengtype-lex.l: Likewise. * sched-int.h: Likewise. * timevar.c: Likewise. From-SVN: r69010
* Convert to ISO C90.Andreas Jaeger2003-06-221-6/+6
| | | | From-SVN: r68332
* coretypes.h (cpp_reader): Forward declare struct.Stan Shebs2003-01-281-1/+0
| | | | | | | | | | | | | | * coretypes.h (cpp_reader): Forward declare struct. * c-pragma.h (cpp_reader): Remove forward declaration. * hashtable.h (cpp_reader): Likewise. * scan.h (cpp_reader): Likewise. * tree.h (cpp_reader): Likewise. * config/darwin-protos.h (cpp_reader): Likewise. * config/arm/arm-protos.h (cpp_reader): Likewise. * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use struct cpp_reader in prototypes. From-SVN: r62050
* c-pragma.c (c_register_pragma): New.Neil Booth2003-01-011-11/+6
| | | | | | | | | | | | | | | | | | | | | | | | | * c-pragma.c (c_register_pragma): New. (init_pragma): Use it. * c-pragma.h (cpp_register_pragma): Don't declare. (c_register_pragma): New. * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H. * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update. * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update. * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update. * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update. * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update. * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update. * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update. * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update. * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update. * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update. * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update cp: * lex.c: Remove superfluous include of cpplib.h. (CONSTRAINT): Define without conditions. (init_cp_pragma): Use c_register_pragma. From-SVN: r60740
* c-pragma.h (add_to_renaming_pragma_list): New function.Steve Ellcey2002-07-081-0/+1
| | | | | | | | * gcc/c-pragma.h (add_to_renaming_pragma_list): New function. * gcc/c-pragma.c (add_to_renaming_pragma_list): New function. (handle_pragma_redefine_extname): Change to use new function. From-SVN: r55330
* Makefile.in (C_COMMON_H): Fix.Neil Booth2002-05-251-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (C_COMMON_H): Fix. Update other targets. * c-common.c: Don't include c-lex.h. (builtin_define_with_value): Make static and prototype. (builtin_define_std): Move from c-lex.h. * c-common.h (init_c_lex): Move from c-lex.h. * c-decl.c: Don't include c-lex.h. (make_pointer_declarator): Move from c-parse.in. * c-lex.c: Don't include c-lex.h. * c-lex.h: Remove. * c-parse.in: Don't include c-lex.h; include c-pragma.h. (make_pointer_declarator): Move to c-decl.c. * c-pragma.c: Don't include c-lex.h. * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h. * c-tree.h (make_pointer_declarator): New. cp: * lex.c: Don't include c-lex.h. * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h. doc: * passes.texi, tm.texi: Update. objc: * Make-lang.in: Update and correct. * objc-act.c: Don't include c-lex.h or cpplib.h. treelang: * treetree.c: Don't include c-lex.h. config: * darwin-c.c: Don't include c-lex.h. * c4x/c4x-c.c: Don't include c-lex.h. * c4x/t-c4x: Update. * i370/i370-c.c: Don't include c-lex.h. * i370/t-i370: Update. * i960/i960-c.c: Don't include c-lex.h. * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h. * i960/t-960bare: Update. * i960/t-vxworks: Update. * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h. * rs6000/t-darwin: Update. * rs6000/t-rs6000-c-rule: Update. * v850/v850-c.c: Don't include c-lex.h. * v850/v850.c: Don't include c-lex.h or cpplib.h. From-SVN: r53876
* c-pragma.c (maybe_apply_renaming_pragma): New.Richard Henderson2002-03-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * c-pragma.c (maybe_apply_renaming_pragma): New. (handle_pragma_redefine_extname, pending_redefine_extname): New. (handle_pragma_extern_prefix, pragma_extern_prefix): New. (init_pragma): Register them. * c-pragma.h (maybe_apply_renaming_pragma): Declare. * c-decl.c (finish_decl): Call it. * cp/decl.c (cp_finish_decl): Likewise. * doc/extend.texi: Document the new pragmas. * config/alpha/osf.h (CPP_SUBTARGET_SPEC): Add __EXTERN_PREFIX. (HANDLE_PRAGMA_EXTERN_PREFIX): New. * config/i386/sol2.h (CPP_PREDEFINES): Add __PRAGMA_REDEFINE_EXTNAME. (HANDLE_PRAGMA_REDEFINE_EXTNAME): New. * config/sparc/sol2.h: Likewise. * g++.dg/other/pragma-re-1.C: New. * g++.dg/other/pragma-ep-1.C: New. * gcc.dg/pragma-re-1.c, gcc.dg/pragma-re-2.c: New. * gcc.dg/pragma-ep-1.c, gcc.dg/pragma-ep-2.c: New. * gcc.dg/pragma-ep-3.c: New. From-SVN: r51200
* c-decl.c: Include c-pragma.h.Richard Henderson2002-03-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-decl.c: Include c-pragma.h. (start_decl, start_function): Invoke maybe_apply_pragma_weak. (finish_function): Tidy. * c-pragma.c: Include c-common.h. (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New. (handle_pragma_weak): Use them. (init_pragma): Register pending_weaks. * c-pragma.h (maybe_apply_pragma_weak): Declare. * print-tree.c (print_node): Print DECL_WEAK. * varasm.c (mark_weak_decls): Remove. (remove_from_pending_weak_list): Remove. (add_weak): Remove. (asm_emit_uninitialised): Call globalize_decl for weak commons. (weak_decls): Make a tree_list. (declare_weak): Cons weak_decls directly. (globalize_decl): Remove weak_decls elements directly. (weak_finish): Simplify weak_decls walk. Don't weaken unused symbols. Don't pretend to handle aliases. (init_varasm_once): Update weak_decls registry. * Makefile.in: Update dependencies. * cp/decl.c: Include c-pragma.h. (start_decl, start_function): Invoke maybe_apply_pragma_weak. * cp/Make-lang.in: Update dependencies. * gcc.dg/weak-1.c: New. From-SVN: r50797
* tm.texi (ASM_WEAKEN_DECL): Document.Alan Modra2002-03-011-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/tm.texi (ASM_WEAKEN_DECL): Document. (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL. (SUPPORTS_WEAK): Likewise. * output.h (add_weak): Add tree param. * varasm.c (add_weak): Likewise. Save decl. (struct weak_syms): Add decl field. (mark_weak_decls): New function. (init_varasm_once): ggc_add_root mark_weak_decls. (assemble_start_function): Use ASM_WEAKEN_DECL. (assemble_variable): Likewise. (assemble_alias): Likewise. (declare_weak): Pass decl to add_weak. (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl. (remove_from_pending_weak_list): Declare and define for ASM_WEAKEN_DECL. * c-pragma.c (handle_pragma_weak): Adjust add_weak call. * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too. * defaults.h (SUPPORTS_WEAK): Likewise. * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit .weak for code sym. Do emit .size for descriptor sym. (ASM_DECLARE_FUNCTION_SIZE): Define. * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define. (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here. Don't output .lglobl unless TARGET_XCOFF. Formatting fixes. * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit .weak for code sym. (HANDLE_PRAGMA_WEAK): Remove. (ASM_WEAKEN_LABEL): Remove. * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define. Co-Authored-By: David Edelsohn <edelsohn@gnu.org> From-SVN: r50181
* bitmap.h: Fix comment formatting.Kazu Hirata2002-01-181-2/+3
| | | | | | | | | | | | | | | | | | | | | | | * bitmap.h: Fix comment formatting. * combine.c: Likewise. * cppfiles.c: Likewise. * c-pragma.h: Likewise. * c-typeck.c: Likewise. * df.c: Likewise. * dwarf2out.c: Likewise. * function.c: Likewise. * gcc.c: Likewise. * genattrtab.c: Likewise. * gthr-win32.h: Likewise. * haifa-sched.c: Likewise. * predict.c: Likewise. * rtlanal.c: Likewise. * rtl.h: Likewise. * unwind-dw2-fde.h: Likewise. * unwind-pe.h: Likewise. * vmsdbgout.c: Likewise. From-SVN: r48987
* c-pragma.h (cpp_register_pragma_space): Remove.Neil Booth2001-10-141-1/+0
| | | | | | | | | | | | | | | | | | * c-pragma.h (cpp_register_pragma_space): Remove. * cpplib.h (cpp_register_pragma_space): Remove. * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New. (cpp_register_pragma_space): Remove. (cpp_register_pragma): Simplify using lookup_pragma_entry, add sanity checks. (do_pragma): Similarly. (_cpp_init_internal_pragmas): Don't register namespaces. * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Don't register namespaces. * cp/lex.c (init_cp_pragma): Similarly. * doc/tm.texi: Update. From-SVN: r46254
* c-pragma.h (add_weak): Move prototype from here...Eric Christopher2001-08-281-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-28 Eric Christopher <echristo@redhat.com> Richard Henderson <rth@redhat.com> * c-pragma.h (add_weak): Move prototype from here... * output.h (add_weak): ... to here. * varasm.c (add_weak): Fix typo. * config/mips/crti.asm: New file. * config/mips/crtn.asm: Ditto. * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef. (CTOR_LISTS_DEFINED_EXTERNALLY): Remove. (INVOKE__main): Ditto. (INIT_SECTION_ASM_OP): New. (FINI_SECTION_ASM_OP): Ditto. (STARTFILE_SPEC): Add crti. (ENDFILE_SPEC): Add crtn. * config/mips/elf64.h: Same. * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN): Remove. * config/mips/vxworks.h: Ditto. * config/mips/t-elf: Support crti and crtn. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r45243
* c-pragma.h: Move weak_syms and weak_decls...Jason Merrill2001-08-241-11/+0
| | | | | | | | | * c-pragma.h: Move weak_syms and weak_decls... * varasm.c: ...here. Now static. (declare_weak, weak_finish, remove_from_pending_weak_list): Don't depend on HANDLE_PRAGMA_WEAK. From-SVN: r45146
* Makefile.in, [...]: replace "GNU CC" with "GCC".Lars Brinkhoff2001-08-221-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c, bitmap.h, builtin-types.def, builtins.c, builtins.def, c-aux-info.c, c-common.c, c-common.def, c-common.h, c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c, c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in, c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c, caller-save.c, calls.c, collect2.c, collect2.h, combine.c, conditions.h, config.gcc, configure.frag, configure.in, conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c, cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h, dependence.c, df.c, df.h, diagnostic.c, diagnostic.h, doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c, dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c, emit-rtl.c, errors.c, errors.h, except.c, except.h, exgettext, explow.c, expmed.c, expr.c, expr.h, final.c, fixproto, flags.h, flow.c, fold-const.c, fp-test.c, function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp, gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c, gencheck.c, gencodes.c, genconfig.c, genemit.c, genextract.c, genflags.c, gengenrtl.c, genmultilib, genopinit.c, genoutput.c, genpeep.c, genrecog.c, gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c, ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c, graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h, gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h, hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h, integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c, libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h, machmode.def, machmode.h, main.c, mbchar.c, mbchar.h, mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk, mkmap-symver.awk, optabs.c, output.h, params.c, params.def, params.h, predict.c, predict.def, predict.h, prefix.c, prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c, read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c, regclass.c, regmove.c, regrename.c, regs.h, reload.c, reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c, rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h, sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c, sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c, stringpool.c, system.h, timevar.c, timevar.def, timevar.h, tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h, tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h, unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c, xcoffout.h: replace "GNU CC" with "GCC". From-SVN: r45105
* c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and ↵H.J. Lu2001-07-171-3/+3
| | | | | | | | | | | | | | | | | | | ASM_OUTPUT_WEAK_ALIAS are defined. * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and ASM_OUTPUT_WEAK_ALIAS are defined. * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible. * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL): Moved ... * config/mips/iris5.h: ... here. (HANDLE_SYSV_PRAGMA): Defined as 1. * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS. * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak symbol. Co-Authored-By: Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> From-SVN: r44072
* Standardize header guards.Richard Henderson2001-05-251-3/+3
| | | | From-SVN: r42615
* Makefile.in (OBJS, [...]): Update.Neil Booth2001-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (OBJS, LIBCPP_OBJS, LIBCPP_DEPS, cpplib.o, cpphash.o, fix-header): Update. (hashtable.o): New target. * c-common.h: Include cpplib.h. Define C_RID_CODE and struct c_common_identifier here. * c-lang.c (c_init_options): Update. Call set_identifier_size. * c-lex.c (c_lex): Update. * c-pragma.h: Update. * c-tree.h (struct lang_identifier): Contain c_common_identifier. Delete rid_code. (C_RID_CODE): Delete. * cpphash.c: Rewrite to use hashtable.c. * cpphash.h: Update include guards. (struct cpp_reader): Remove hashtab. hash_ob and buffer_ob are no longer pointers. Add hash_table and our_hashtable. (HASHSTEP, _cpp_init_hashtable, _cpp_lookup_with_hash): Delete. (_cpp_cleanup_hashtable): Rename _cpp_destroy_hashtable. (_cpp_cleanup_stacks): Rename _cpp_init_directives. * cppinit.c (cpp_create_reader): Update. * cpplex.c (cpp_ideq, parse_identifier, cpp_output_token): Update. (cpp_interpret_charconst): Eliminate warning. * cpplib.c (do_pragma, do_endif, push_conditional, cpp_push_buffer, cpp_pop_buffer): Update. (_cpp_init_stacks): Rename cpp_init_directives. (_cpp_cleanup_stacks): Remove. * cpplib.h: Update include guards. Include tree-core.h and c-rid.h. (cpp_hashnode, cpp_token, NODE_LEN, NODE_NAME, cpp_forall_identifiers, cpp_create_reader): Update. (C_RID_CODE, cpp_make_node): New. (c_common_identifier): New identifier node for C front ends. * cppmain.c (main): Update. * fix-header.c (read_scan_file): Update. * flags.h (id_clash_len): Make unsigned. * ggc.h (ggc_mark_nonnull_tree): New. * hashtable.c: New. * hashtable.h: New. * stringpool.c: Update comments and copyright. Update to use hashtable.c. * toplev.c (approx_sqrt): Move to hashtable.c. (id_clash_len): Make unsigned. * toplev.h (ident_hash): New. * tree.c (gcc_obstack_init): Move to hashtable.c. * tree.h: Include hashtable.h. (IDENTIFIER_POINTER, IDENTIFIER_LENGTH): Update. (GCC_IDENT_TO_HT_IDENT, HT_IDENT_TO_GCC_IDENT): New. (struct tree_identifier): Update. (make_identifier): New. cp: * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. (C_RID_CODE): Remove. * lex.c (cxx_init_options): Call set_identifier_size. Update. (init_parse): Don't do it here. objc: * objc-act.c (objc_init_options): Call set_identifier_size. Update. From-SVN: r42334
* c-common.c: Remove USE_CPPLIB conditional inclusions.Neil Booth2000-11-251-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c: Remove USE_CPPLIB conditional inclusions. * c-common.h: Similarly. * c-decl.c: Similarly. * c-lang.c: Similarly. * c-lex.c: Similarly. * c-parse.in: Similarly. * c-pragma.c: Similarly. * c-pragma.h: Similarly. * gcc.c: Similarly. * toplev.c: Similarly. * cp/cp-tree.h: Similarly. * cp/decl2.c: Similarly. * cp/lang-specs.h: Similarly. * cp/lex.c: Similarly. * cp/lex.h: Similarly. * cp/spew.c: Similarly. * java/lang-options.h: Similarly. * objc/lang-specs.h: Similarly. * objc/objc-act.c: Similarly. * configure.in: Remove configure option. * config.in: Regenerate. * configure: Regenerate. From-SVN: r37742
* c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.Zack Weinberg2000-09-081-16/+2
| | | | | | | | | | | | | * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS. (init_pragma): Avoid warning if pfile happens to be unused. * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never define init_pragma to nothing. Always prototype init_pragma. Prototype dispatch_pragma if !USE_CPPLIB. * c-lex.c (process_directive): Always call dispatch_pragma. Initialize entering_c_header to 0. From-SVN: r36277
* c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if REGISTER_TARGET_PRAGMAS is defined.Zack Weinberg2000-09-071-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if REGISTER_TARGET_PRAGMAS is defined. Duplicate some definitions from cpplib.h. * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has already done it. * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add documentation for REGISTER_TARGET_PRAGMAS. * c-lex.c: Include cpplib.h before c-pragma.h. Define a default-pragma callback to implement -Wunknown-pragmas if USE_CPPLIB. * c-parse.in: Move all includes to top of file. * c-pragma.c: Include cpplib.h before c-pragma.h. Include tm_p.h. (dispatch_pragma): Put the namespace in the -Wunknown-pragmas warning. (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it. * arm.h, arm-protos.h, arm.c, c4x.h, c4x-protos.h, c4x.c, h8300.h, h8300-protos.h, h8300.c, i370.h, i370-protos.h, i370.c, i960.h, i960-protos.h, i960.c, sh.h, sh-protos.h, sh.c, v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based pragmata scheme to use REGISTER_TARGET_PRAGMAS instead. * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add multiple include guard. * i370.md (untyped_call): Use GEN_CALL. (umodsi3): Remove unused variable. * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA. * v850.c (output_move_single, output_move_double): Constify return value. (print_operand): Constify a char *. * v850.h (struct small_memory_info): Constify name member. From-SVN: r36249
* Integrated preprocessor.Zack Weinberg2000-09-071-32/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | top level: * Makefile.in: Remove all references to c-parse.gperf, c-gperf.h, and c-parse.h. Remove -d from yacc command line generating c-parse.c. Update dependencies. * c-parse.gperf, c-gperf.h: Delete. * c-common.c: Don't define parse_options, cpp_token, yy_cur, yy_lim, or yy_get_token. Don't define get_directive_line if USE_CPPLIB. * c-common.h: Add multiple include guard. Define RID values for every keyword in C, C++, and Objective C. Put all the modifiers first. (struct c_fileinfo, get_fileinfo, dump_time_statistics): New. * c-decl.c (c_decode_option): Handle -lang-objc here. (print_lang_identifier): Handle C_IS_RESERVED_WORD case. (grokdeclarator): Adjust for new RID scheme. (extract_interface_info): New stub. * c-lang.c: Don't declare yy_cur or parse_options. (lang_init_options): Call cpp_init. Don't call cpp_options_init. (lang_init): Don't call check_newline if USE_CPPLIB. * c-lex.c: Don't include c-parse.h. Do include timevar.h. Elide lots of unnecessary code if USE_CPPLIB. Delete code rendered unnecessary by new architecture. Move routines not shared with C++ to c-parse.in. Maintain a local idea of the line number. Handle C++ as well as C. [USE_CPPLIB]: Declare and register callbacks for #ident and for entering/leaving files. (init_c_lex, c_lex): Are now the entry points to this file. (check_newline): Break out directive handling to process_directive. (read_ucs, is_extended_char, utf8_extend_token): Moved here from C++ front end. (readescape, parse_float): Overhaul. (lex_number, lex_string, lex_charconst): Break out of c_lex (n'ee yylex). (get_fileinfo, update_header_times, dump_one_header, dump_time_statistics): New and/or moved here from C++. Support per-file data needed by C++ and per-header timing statistics (C++ only, at the moment). * c-lex.h: Update prototypes. Add multiple include guard. * c-tree.h (struct lang_identifier): Add rid_code field. (C_IS_RESERVED_WORD, C_RID_CODE): New. * c-parse.in: Include c-pragma.h. Remove unnecesary calls to reinit_parse_for_function and/or position_after_white_space. (save_filename, save_lineno): Look ahead before saving. (label -> identifier ':'): Save file and line before shifting ':'. (reservedwords): No need to call get_identifier. (init_parse, finish_parse, yyerror, yylex, yyprint, make_pointer_declarator): Are now here for C/ObjC. (rid_to_yy): Conversion table from RID constants to Yacc codes. * c-pragma.c: Rewrite parsing logic to fit with cpplib's #pragma registry. Provide dummy implementation of that interface if !USE_CPPLIB. * c-pragma.h: Update to match. * flags.h: Add multiple include guard. (flag_detailed_statistics): Moved here from C++. * toplev.c: Define flag_detailed_statistics. * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case #if USE_CPPLIB. * timevar.def (TV_CPP, TV_LEX): New. * timevar.h: Add multiple include guard. * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case #if USE_CPPLIB. * objc/objc-act.c: Don't mention yy_cur or parse_options. Initialize cpplib properly. Force lineno to 0 after first call to check_newline. Don't handle -lang-objc here. Move forget_protocol_qualifiers and remember_protocol_qualifiers here. cp: * Make-lang.in, Makefile.in: Remove all references to input.c, gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. * gxx.gperf, hash.h, input.c: Delete. * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is initialized properly. * class.c (fixup_pending_inline): Take a tree, not a struct pending_inline *. All callers changed. (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, RID_PROTECTED entries in ridpointers[] array here. * decl.c (duplicate_decls): Do not refer to struct pending_inline. (record_builtin_type, init_decl_processing): Use RID_MAX not CP_RID_MAX. (grokdeclarator): Use C_IS_RESERVED_WORD. * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of cpplib. (grok_x_components): Do not inspect pending_inlines chain. * cp-tree.h (struct lang_identifier): Add rid_code entry. (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, TIME_IDENTIFIER_FILEINFO): Kill. Update prototypes. * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a single 32-bit word. * parse.y: Call do_pending_inlines unconditionally. reinit_parse_for_method is now snarf_method. fn.defpen is no longer necessary. Remove unnecessary <itype> annotation on SCOPE. Do not refer to end_of_file or struct pending_inline. * semantics.c (begin_inline_definitions): Call do_pending_inlines unconditionally. * lex.c: Remove all code now shared with C front end. Initialize cpplib properly if USE_CPPLIB. Put reserved words into the get_identifier table. Rewrite pragma handling to work with the registry. Move code to save tokens for later processing to spew.c. * spew.c: Rewrite everything in terms of token streams instead of text. Move routines here from lex.c / input.c as appropriate. GC-mark trees hanging off the pending inlines chain. testsuite: * g++.old-deja/g++.benjamin/13478.C: Put meaningful tags on ERROR markers. * g++.old-deja/g++.brendan/crash8.C: Move ERROR marker up one line. * gcc.dg/c99-array-nonobj-1.c: Don't expect func[] cases to fail. * gcc.dg/wtr-label-1.c: Don't use unconstrained .* in error regexps. * gcc.dg/wtr-suffix-1.c: Correct error regexps. * gcc.dg/cpp/unc1.c, gcc.dg/cpp/unc2.c, gcc.dg/cpp/unc3.c: Preprocess only. * gcc.dg/cpp/unc4.c: Adjust line number in dg-error line. * gcc.dg/noncompile/const-ll-1.c: Generalize error regexp. From-SVN: r36216
* top level:Zack Weinberg2000-08-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c (declare_function_name): Use func_id_node, function_id_node, and pretty_function_id_node. Do not make __func__ visible at file scope. * c-common.h (c_tree_index): Add CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID. (function_id_node, pretty_function_id_node, func_id_node): New macros. * c-decl.c (init_decl_processing): Initialize function_id_node, pretty_function_id_node, and func_id_node. (c_make_fname_decl): Correct comment. * tree.h (struct tree_identifier): Constify pointer member. * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *. * c-pragma.h (struct weak_syms): Constify name and value members. (add_weak): Constify arguments. * calls.c (special_function_p): Constify a char *. (expand_call): Remove variable which is initialized and then never used. * dependence.c (struct def_use, struct induction, struct subscript): Constify 'variable' member. (get_low_bound, have_induction_variable): Constify char * argument. (find_induction_variable): Add braces to avoid dangling else. (classify_dependence): Constify char * arrays. * profile.c (output_func_start_profiler): Constify a char *. * stor-layout.c (finalize_record_size): Constify a char *. * tree.c (is_attribute_p): Constify a char *. * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument. * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code for comprehensibility. Do not call get_identifier if we did not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to create temporary string constants, not ggc_alloc_string. No need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const char * to hold IDENTIFIER_POINTERs. ch: * inout.c (add_enum_to_list): Use DECL_NAME directly, don't get its IDENTIFIER_POINTER and immediately call get_identifier on it. * lex.c (yywrap): Constify a char *. cp: * class.c (build_secondary_vtable): Constify a char *. * decl.c (init_decl_processing): Initialize function_id_node, pretty_function_id_node, and func_id_node. * input.c (struct input_source): Constify 'str'. (feed_input): Constify first argument. * mangle.c (write_identifier): Constify argument. * pt.c (mangle_class_name_for_template): Constify argument. f: * ansify.c: Use #line, not # <number>. java: * jcf-parse.c (set_source_filename): Constify a char *. * jcf-write.c (append_innerclasses_attribute, make_class_file_name): Constify a char *. Don't recycle a variable for an unrelated purpose. * parse.y: (build_alias_initializer_parameter_list): Constify a char *. (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings. From-SVN: r36055
* c-common.c: PROTO -> PARAMS.Kaveh R. Ghazi2000-01-121-4/+4
| | | | | | | | | | | | | | | | | | | * c-common.c: PROTO -> PARAMS. * c-common.h: Likewise. * c-decl.c: Likewise. * c-iterate.c: Likewise. * c-lang.c: Likewise. * c-lex.c: Likewise. * c-lex.h: Likewise. * c-parse.in: Likewise. * c-pragma.c: Likewise. * c-pragma.h: Likewise. * c-tree.h: Likewise. * c-typeck.c: Likewise. * objc/objc-act.c: Likewise. * objc/objc-act.h: Likewise. From-SVN: r31362
* Applied Mumit Khan's patch to fix #pragma push/pop handling.Mumit Khan1999-10-191-3/+0
| | | | From-SVN: r30084
* c-pragma.c (mark_align_stack): New.Richard Henderson1999-09-181-0/+3
| | | | | | | | | * c-pragma.c (mark_align_stack): New. (init_pragma): New. * c-pragma.h (init_pragma): Declare it. * c-lex.c (init_parse): Call it. From-SVN: r29502
* Makefile.in (cppexp.o): Depend on cpphash.h.Geoff Keating1999-09-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (cppexp.o): Depend on cpphash.h. * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx. Include cpphash.h. * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx. * cpplib.c (do_define): Generalise to handle poisoned definitions, redefining poisoned identifiers, etc. (do_undef): Don't allow poisoned identifiers to be undefined. (do_pragma): Add #pragma poison. (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. * cccp.c: Add T_POISON node type. (special_symbol): Handle `defined(xxx)' and plain `xxx' for poisoned xxx. (do_define): Generalise to handle poisoned definitions, redefining poisoned identifiers, etc. (do_undef): Don't allow poisoned identifiers to be undefined. (do_pragma): Add #pragma poison. (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. * c-pragma.c (handle_pragma_token): Ignore #pragma poison. * c-pragma.h: Add ps_poison state. We now always have generic pragmas. From-SVN: r29224
* c-pragma.c (push_alignment): Don't ignore alignments greater than 4 bytes.Jason Merrill1999-04-261-4/+3
| | | | | | | | | | | | | * c-pragma.c (push_alignment): Don't ignore alignments greater than 4 bytes. (handle_pragma_token): Likewise. * c-pragma.c: Support for #pragma pack (push, <id>, <n>). (struct align_stack): Add id field. (push_alignment, pop_alignment): Take id parameter. (handle_pragma_token): Add necessary states. * c-pragma.h (enum pragma_state): Add necessary states. From-SVN: r26662
* * c-pragma.c (add_weak); Delete. Moved into...Jeffrey A Law1999-02-251-0/+2
| | | | | | | | | * varasm.c (add_weak): New external function. (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to the list of weak functions. * c-pragma (add_weak): Declare. From-SVN: r25454
* bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.Kaveh R. Ghazi1999-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword. * bitmap.h (bitmap_print): Likewise. * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise. * c-lang.c (build_objc_string): Likewise. * c-lex.c (yyerror, extend_token_buffer): Likewise. Don't include limits.h or ctype.h. Remove unused variable `p'. * c-lex.h (yyerror): Qualify a char* with the `const' keyword. * c-pragma.c (handle_pragma_token): Likewise. * c-pragma.h (handle_pragma_token): Likewise. * c-tree.h (build_objc_string, builtin_function, grokfield, build_indirect_ref, lvalue_or_else, readonly_warning, error_init, pedwarn_init): Likewise. * c-typeck.c (convert_for_assignment, warn_for_assignment, push_string, warning_init, incomplete_type_error, build_indirect_ref, lvalue_or_else, readonly_warning, build_c_cast, spelling, push_member_name, print_spelling, error_init, pedwarn_init, start_init): Likewise. * objc/objc-act.c (build_objc_string): Likewise. * print-tree.c (print_node_brief, print_node): Likewise. * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise. From-SVN: r25296
* Fix spelling typo in comment.Nick Clifton1998-10-071-1/+1
| | | | From-SVN: r22895
* Add support for #pragma pack(push,<n>) and #pragma pack(pop).Nick Clifton1998-10-011-7/+57
| | | | From-SVN: r22710
* Change HANDLE_PRAGMA macro so that it will work with USE_CPPLIB.Nick Clifton1998-09-021-2/+6
| | | | | | Add INSERT_ATTRIBUTES macro. From-SVN: r22165
* Update FSF address.Richard Kenner1995-06-151-1/+2
| | | | From-SVN: r9959
* Update weak symbol supportJason Merrill1995-05-161-4/+4
| | | | From-SVN: r9697
* Do not put enclose within HANDLE_SYSV_PRAGMAMichael Meissner1995-04-181-3/+0
| | | | From-SVN: r9413
* Move pragma interface support to c-pragma.hMichael Meissner1995-04-181-0/+48
| | | | From-SVN: r9410
* Initial revisionMichael Meissner1995-04-181-0/+0
From-SVN: r9409